在使用Spring + Jedis设置时,有序集合如何在Redis中存储?

4 浏览
0 Comments

在使用Spring + Jedis设置时,有序集合如何在Redis中存储?

我有一个使用Spring 4.3.9的应用程序,其中包含spring-data-redis(1.8.7)和jedis(2.9.0)。我可以使用以下代码轻松设置和检索ZSET:

// 注释掉 -- 但下面的代码也可以正常工作
// 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" <-- 这应该返回项目数量

(integer) 0

ZSCORE "score" userId <--> 这里我使用了实际的userId

(nil)

其他命令如ZREVRANGE或ZREVRANGEBYSCORE都返回(nil)。

我知道我的键已经设置好了,因为"info keyspace"显示键和过期键之间的差异恰好为1 -- 这就是我的分数ZSET。如果我从我的Spring应用程序中删除ZSET,键和过期键的数量是相同的。所以我知道我的键确实存在。

哥们,我的ZSET在哪里?我如何通过CLI访问它?我可以轻松地继续开发而不使用CLI,但我想了解我做错了什么。

0