如果在初始到期时间之前访问记录,我需要重置过期时间。我使用Spring数据redis API将Redis用作Cache。我正在使用RediscacheManager的setDefaultExpiration(5000)来设置默认过期时间。无法找到有关重置到期时间的任何解决方案或文档。任何指导都表示赞赏。
另外,想知道为什么这不是Redis Cache的自然特性,毕竟它应该从缓存中获取最常用的记录。
答案 0 :(得分:0)
写了这个方法并从适当的地方打电话。对我来说就像一个魅力。
public void resetExpire(String keyPattern) {
LOG.debug("Getting Multiple keys from cache with pattern: " + keyPattern);
Set<String> keylist = redisTemplate.keys(keyPattern);
redisTemplate.executePipelined(new RedisCallback<Object>() {
public Object doInRedis(RedisConnection connection) throws DataAccessException {
keylist.forEach(key->
redisTemplate.expire(key, 5000, TimeUnit.SECONDS));
return null;
}
});
}