我有一个Spring 4.3.9应用程序,带有spring-data-redis(1.8.7)和jedis(2.9.0)。我可以使用以下代码轻松设置和检索ZSET:
// Commented out -- but below line works fine too
// redisTemplate.opsForZSet().remove("score", userId);
Double scoreInRedis = redisTemplate.opsForZSet().score("score", userId);
redisTemplate.opsForZSet().add("score", userId, (double) score);
但是,当我进入redis CLI并尝试使用“ score”键检索ZSET时,什么也没返回。因此,我尝试了以下命令:
ZCARD "score" <-- this should give number of items wi
(integer) 0
ZSCORE "score" userId <--> I use the actual number here for the userId
(nil)
其他命令(如ZREVRANGE或ZREVRANGEBYSCORE)全部返回(零)。
我知道我的键已设置,因为“信息键空间”显示了键之间的差,并且到期时间恰好是1-这是我的得分ZSET。如果我从Spring应用程序中删除ZSET,则密钥数和过期密钥是相同的。所以我知道我的钥匙在那儿。
老兄,我的ZSET在哪里?以及如何通过CLI访问它?我可以轻松地继续开发不通过CLI进行w / o访问的方法,但是我想了解我要离开的地方。
答案 0 :(得分:0)
事实证明我在使用RedisTemplate<String, Long>
时使用不正确。我切换到基于StringRedisTemplate
的Bean,并且神奇地现在在CLI上可以看到我的密钥了。
我仍然不确定使用其他bean时我的钥匙隐藏在哪里。
顺便说一下,在进行此操作时,我遵循了一些指导:https://medium.com/@smoothed9/redis-sorted-sets-with-spring-boot-and-redistemplate-66931e2e1b86