**
**
application.yml
spring: redis: host: 192.168.152.188 port: 6379 password: 776259
**
**
可以使用常量定义键的名,然后使用Redis模板存放数据的时候键名直接就用常量代替
public class RedisConstant { public final static String UPLOAD_KEY = "upload_"; public final static String ADD_KEY = "add_"; }
**
**
**
**
//给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); } } }