首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RedisTemplate getExpire()在Springcache中返回意外值

RedisTemplate getExpire()在Springcache中返回意外值
EN

Stack Overflow用户
提问于 2020-03-11 03:54:02
回答 1查看 736关注 0票数 0

我会在快到期的时候刷新缓存。因此,我覆盖部分So缓存,并在我自己的redisCacheManager中管理缓存。

一切正常,但是当运行"get“方法时,意外的值​​将在我自己的​​中返回。当时,redis中的缓存键确实与"cacheKey“属性相同。

代码语言:javascript
复制
    @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 .And,我不明白这意味着什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-11 05:16:48

从红色信息系统的文件:

从Redis2.8开始的

返回值在发生错误时发生了更改:

如果键不存在,则返回-2。如果键存在,则返回-1。

我建议您确保密钥是正确的,并且在执行getExpire时确实存在于redist中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60629048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档