在执行以下代码时
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/