使用spring data redis

时间:2018-01-05 04:29:57

标签: spring-data-redis redis-cache

如果在初始到期时间之前访问记录,我需要重置过期时间。我使用Spring数据redis API将Redis用作Cache。我正在使用RediscacheManager的setDefaultExpiration(5000)来设置默认过期时间。无法找到有关重置到期时间的任何解决方案或文档。任何指导都表示赞赏。

另外,想知道为什么这不是Redis Cache的自然特性,毕竟它应该从缓存中获取最常用的记录。

1 个答案:

答案 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;
            }
        });
    }