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