使用redis自动清理上传垃圾图片
2022/2/1 19:09:54
本文主要是介绍使用redis自动清理上传垃圾图片,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
**
- 先在springboot配置文件中进行redis的配置
**
application.yml
spring: redis: host: 192.168.152.188 port: 6379 password: 776259
**
- 然后可以创建一个常量工具类,用于存放Redis的键
**
可以使用常量定义键的名,然后使用Redis模板存放数据的时候键名直接就用常量代替
public class RedisConstant { public final static String UPLOAD_KEY = "upload_"; public final static String ADD_KEY = "add_"; }
**
- 注入StringRedisTemplate类的对象
**
**
- 然后将图片上传成功后的名字存在redis的upload_键中
**
//给Redis添加key的值 .add添加的就是这个键对应的值 redisTemplate.boundSetOps(RedisConstant.UPLOAD_KEY).add(newName);
**
- 再将图片和其他信息新增功能成功后的图片名保存一份
**
redisTemplate.boundSetOps(RedisConstant.ADD_KEY).add(tSetmeal.getImg());
**
- 使用作业调度定时清理两个键中的差值
**
需要将作业调度放在服务器中,配置文件中先配置端口号,和redis的配置
server: port: 9201 spring: redis: host: 192.168.152.188 password: 776259
然后创建一个作业调度类
@Component public class ImgDelete { @Autowired private StringRedisTemplate redisTemplate; @Value("${setmeal.img.path}") private String path; //实现图片删除,被执行的任务功能、 /* * 加一个作业调度的注解,该注解是springboot框架中内置的作业调度方式, * 直接在注解后写上CronTrigger的表达式 * 然后再主启动类上加上允许作业调度的注解 */ @Scheduled(cron = "0/5 * * * * ?") public void imgDelete() throws Exception{ //找差集,然后删除差集中的图片 Set<String> diff = redisTemplate.boundSetOps(RedisConstant.UPLOAD_KEY).diff(RedisConstant.ADD_KEY); for (String s : diff) { File file = new File(path,s); //这是在本地存放文件的地方删除文件 file.delete(); //这是将redis中的多余文件名进行删除 redisTemplate.boundSetOps(RedisConstant.UPLOAD_KEY).remove(s); } } }
这篇关于使用redis自动清理上传垃圾图片的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27阿里云Redis学习入门指南
- 2024-12-27阿里云Redis入门详解:轻松搭建与管理
- 2024-12-27阿里云Redis学习:新手入门指南
- 2024-12-24Redis资料:新手入门快速指南
- 2024-12-24Redis资料:新手入门教程与实践指南
- 2024-12-24Redis资料:新手入门教程与实践指南
- 2024-12-07Redis高并发入门详解
- 2024-12-07Redis缓存入门:新手必读指南
- 2024-12-07Redis缓存入门:新手必读教程
- 2024-12-07Redis入门:新手必备的简单教程