Redis扫描计数:如何强制SCAN返回与模式匹配的所有密钥?
我试图找出存储在与redis模式匹配的键列表中的值。我尝试使用,SCAN
以便以后可以MGET
用来获取所有值,问题是:
SCAN 0 MATCH "foo:bar:*" COUNT 1000
不返回任何值,而
SCAN 0 MATCH "foo:bar:*" COUNT 10000
返回所需的键。我如何强制SCAN
浏览所有现有键?我需要为此研究lua吗?
回答:
使用下面的代码,您将从光标0扫描1000个第一个对象
SCAN 0 MATCH "foo:bar:*" COUNT 1000
结果,您将获得一个新的光标以进行调用
SCAN YOUR_NEW_CURSOR MATCH "foo:bar:*" COUNT 1000
扫描1000个下一个对象。然后,当您COUNT
从1000增加到10000并检索数据时,您将扫描更多键,然后再匹配更多键。
要扫描整个列表,您需要重新调用,SCAN
直到光标给出响应以返回零为止(即整个扫描)
使用INFO
命令来获取您的密钥数量,例如
db0:keys = YOUR_AMOUNT_OF_KEYS,expires = 0,avg_ttl = 0
然后打电话
SCAN 0 MATCH "foo:bar:*" COUNT YOUR_AMOUNT_OF_KEYS
以上是 Redis扫描计数:如何强制SCAN返回与模式匹配的所有密钥? 的全部内容, 来源链接: utcz.com/qa/415616.html