目前我在Redis中存储了一些数据,如下所示
'key:A:1':'some_data'
'key:A:2':'some_data'
'key:A:3':'some_data'
'key:A:4':'some_data'
'key:A:5':'some_data'
'key:A:6':'some_data'
'key:B:7':'some_data'
'key:B:8':'some_data'
'key:B:9':'some_data'
'key:B:10':'some_data'
'key:B:11':'some_data'
'key:B:12':'some_data'
'key:ABC:15':'some_data'
'key:ABC:16':'some_data'
'key:ABC:17':'some_data'
'key:ABC:18':'some_data'
'key:ABC:19':'some_data'
'key:ABC:20':'some_data'
...
...... 不的大量其他数据与上述格式匹配
在Python中,我希望迭代上述格式的所有键(键:*:*)并提取值。所以基本上我想首先遍历格式键的所有键:A:*,然后格式键的所有键:B:*等。有没有办法在不使用KEYS
模式的情况下执行此操作?或者我应该重新考虑如何存储数据?
答案 0 :(得分:2)
您可以使用带有匹配模式的SCAN命令来实现此目的。它以增量迭代方式迭代键空间,并且不会长时间阻塞Redis。
但是,这个命令也有一些缺点。例如,给定的密钥可能会多次返回,您应该在客户端代码中注意它。有关详细信息,请参阅the documentation。