java使用redistemplat操作redis,假如有一个hash统计了上周的用户数和本周的用户数,如何根据当前时间去设置缓存的过期时间为一周,同时也要避免因为某一天的时间不足一天而造成额外缓存多一天
时间: 2023-02-17 17:25:33 浏览: 87
redis缓存过期设置1
使用 RedisTemplate 操作 Redis 时,可以使用 expire 方法设置缓存的过期时间。在你的情况中,可以根据当前时间计算出下一个周日的时间,并将其作为过期时间设置在缓存中。例如:
```
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
long expireTime = calendar.getTimeInMillis() - System.currentTimeMillis();
redisTemplate.expire(hashKey, expireTime, TimeUnit.MILLISECONDS);
```
这样可以保证缓存在下一个周日过期,并避免因为某一天的时间不足一天而造成额外缓存多一天。
阅读全文