如果在初始过期时间之前访问记录,我需要重置过期时间。我正在使用 Spring data redis API 将 Redis 用作缓存。我正在使用 RediscacheManager 的 setDefaultExpiration(5000) 来设置默认过期时间。找不到有关重置到期时间的任何解决方案或文档。任何指导表示赞赏。
还有,想知道为什么这不能成为 Redis Cache 的一个自然特性,毕竟它应该从缓存中获取最常用的记录。
如果在初始过期时间之前访问记录,我需要重置过期时间。我正在使用 Spring data redis API 将 Redis 用作缓存。我正在使用 RediscacheManager 的 setDefaultExpiration(5000) 来设置默认过期时间。找不到有关重置到期时间的任何解决方案或文档。任何指导表示赞赏。
还有,想知道为什么这不能成为 Redis Cache 的一个自然特性,毕竟它应该从缓存中获取最常用的记录。
编写此方法并从适当的位置调用。对我来说就像一个魅力。
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;
}
});
}