我正在使用spring redistemplate连接到redis。我使用zadd添加数据,然后调用zrange检查数据值。它返回的数据很好,但当我调用key*时,我没有得到任何结果。真糊涂!!救命啊!!但当我运行绝地武士时,它运行得很好,我看到来自cli等的条目。

System.out.println("**********  ZRANGE IS " + redisTemplate.zrange(patternEmailsSetKey, 0l, -1l));
    final Set<String> keys = redisTemplate.hkeys("*");
    System.out.println("&&&&&&&&&&&&&&& KEY SIZE IS " + keys.size());
    for(String key: keys) {
        System.out.println("key: "+ key);
    }

返回
**********z范围是[{“subject”:“ab”,“eest”:“aa”,“url”:[“aa”,“ss”],“dd”:0,“id”:11,“bid”:999}]
&&&&&&&&&&&&&&&密钥大小为0

最佳答案

ZRANGEZADDSorted Set的命令,而HKEYSHASH的命令。因此,在尝试获取Sorted Set的字段时,您正在向HASH添加元素。
如果要获取Sorted Set的所有成员,则需要使用ZSCAN命令。

10-07 21:24