在执行以下代码时

KeyScanCursor<String> cursor = syncCommands.scan(ScanArgs.Builder.limit(50).match(match));
List<String> values = null;
while (!cursor.isFinished()) {
for (String key : cursor.getKeys()) {
    values = syncCommands.lrange(key, 0, 50);
    }
    cursor = syncCommands.scan(cursor, ScanArgs.Builder.limit(50).match(match));
}


得到空结果,但在执行以下命令时

redis-cli --cluster call 127.0.0.1:30001 SCAN 0 MATCH "orgId:EC:resetPasswordExpiryHours"


得到预期的结果

127.0.0.1:30003: 22
 orgId:EC:resetPasswordExpiryHours


有人可以帮我为什么上面的代码不起作用。

最佳答案

您的最后一次扫描迭代将被忽略。光标已完成,但您尚未处理返回的键。

关于java - Redis SCAN返回无效的游标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61776360/

10-15 10:01