【发布时间】:2020-06-23 00:35:53
【问题描述】:
我想在快到期时刷新缓存。于是我重写了部分springcache,在自己的redisCacheManager中管理缓存。
一切正常,但是在运行“get”方法时,在我自己的CustomizedRedisCache中返回了意想不到的值。那个时候redis中的缓存key确实和“cacheKey”属性是一样的。
@Override
public ValueWrapper get(final Object key) {
ValueWrapper valueWrapper = super.get(key);
if (null != valueWrapper) {
String cacheKey = this.createCacheKey(key);
log.info("cache name in redis = {}", cacheKey);
Long ttl = this.redisTemplate.getExpire(cacheKey, TimeUnit.SECONDS);
log.info("{}s before expire ", ttl);
}
return valueWrapper;
}
字段 ttl 总是返回 -2 。我不明白这是什么意思。
【问题讨论】:
标签: java redis spring-cache