我有使用redis-server进行缓存存储的spring微服务应用程序 . 使用RedisCacheManager Api . 在这里我们可以选择设置“ setDefaultExpiration ” . 因为rediscachemanager计算从第一次访问带注释的方法( @cacheable )到期 .
我想计算从可缓存方法的上次访问到第一次访问的到期时间 . Google库已经给出了直接的方法来实现这个:在 CacheBuilder 中我们有一个名为 expireAfterAccess CacheBuilder API的方法
当我们想要使用 google gauva server 时,我们可以使用它 . 但在我的应用程序中,由于我的集中式缓存服务器要求,我必须使用redis服务器进行缓存 . 我检查了RedisCacheManager类,但没有找到实现此方法的方法 . 我如何在redis-cache-server中实现此功能 . 下面是创建RedisCacheManager bean的代码:
@Bean
RedisCacheManager cacheManager() {
final RedisCacheManager redisCacheManager = new RedisCacheManager(
redisTemplate());
redisCacheManager.setUsePrefix(true);
redisCacheManager.setDefaultExpiration(redisExpireTime);
return redisCacheManager;
}
1 回答
我通过自定义cacheResolver解决了这个问题,但似乎效率低下 .
在我的情况下,每次缓存命中都会自动刷新缓存ttl到300秒 . 然后将cacheResolver注入配置类,
我希望很清楚,英语不是我的母语 .