所以我有一个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>应该是什么样子?
谢谢,也许我需要重新审视一下,现在我很困惑。
暂无答案!
目前还没有任何答案,快来回答吧!