redis pipeline zset对java的操作返回空结果

vzgqcmou  于 2021-06-09  发布在  Redis
关注(0)|答案(0)|浏览(503)

所以我有一个redis集群转发到默认端口。我设置keydb cli,并在terminal+cli中键入:

ZREVRANGE i:25190 0 -1

这将返回127个结果。接下来,我使用莴苣在java中设置redistemplate,一切都很好:我可以说:

Object oo = redisTemplate.opsForZSet().reverseRange("i:25190", 0, -1);

我将得到与cli中相同的结果。
但当我试图建立一个redis管道时:

List<Object> results = redisTemplate.executePipelined(new RedisCallback<Object>() {
            public Object doInRedis(RedisConnection connection) throws DataAccessException {
                Set<Tuple> redisInputSet = new HashSet<>();
                Set<String> dummyMasterIds = Set.of("53451" , "47453", "43197", "13452");
                for(String masterId: dummyMasterIds) {
                    redisInputSet.add(new DefaultStringTuple(stringToBytes(masterId), masterId.toString(), 0.0));
                }
                connection.zSetCommands().zAdd("temp".getBytes(), redisInputSet);
                connection.zSetCommands().zRevRange("i:25190".getBytes(), 0L, -1L);
                connection.del(stringToBytes("temp"));
                return null;
            }
        });

我立刻注意到我的connection.zsetcommands().zrevrange(“i:25190.getbytes(),0l,-1l);返回空集,请参阅所附的调试屏幕截图。第一个命令(zadd())可以很好地添加值,然后第二个用于检索值的命令解析为0。
调试
知道为什么会这样吗?我连载错了吗?我是不是把管道设置错了?key<i:25190>应该是什么样子?
谢谢,也许我需要重新审视一下,现在我很困惑。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题