如果记录在初始过期时间之前被访问,我需要重置过期时间。我正在使用Spring data redis API来使用Redis作为缓存。我正在使用RediscacheManager的setDefaultExpiration(5000)来设置默认的过期时间。找不到有关重置过期时间的任何解决方案或文档。任何指导都是值得感谢的。
此外,我想知道,为什么这不是Redis Cache的一个自然特性,毕竟,它应该从缓存中获得最常用的记录。
发布于 2018-03-21 04:49:49
编写此方法并从适当的位置调用。对我来说很有吸引力。
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;
}
});
}https://stackoverflow.com/questions/48107197
复制相似问题