我想在快满时刷新缓存。因此,我覆盖了部分springcache,并在自己的redisCacheManager中管理缓存。
一切都很好,但是运行``get''方法时,意外的值会在我自己的CustomizedRedisCache中返回。那时,redis中的缓存键确实与“ 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,我不明白那是什么意思。