python - 遍历 Redis 键

标签 python json loops redis

目前我有一些数据存储在 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 中,我想以上述格式 (key:*:*) 遍历所有键并提取值。所以基本上我想首先遍历格式键的所有键:A:*,然后是格式键的所有键:B:*等。有没有办法在不使用 KEYS 的情况下执行此操作> 图案?还是我应该重新考虑如何存储数据?

最佳答案

您可以使用 SCAN命令与匹配模式来实现这一点。它以增量迭代的方式迭代键空间,并且不会长时间阻塞Redis。

但是,这个命令也有一些缺点。例如,给定的 key 可能会返回多次,您应该在客户端代码中注意它。参见 the documentation了解更多详情。

关于python - 遍历 Redis 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40228399/

相关文章:

python - 使用多处理查找网络路径

json - 完成数据加载后不会删除 swift activityIndi​​cator

loops - WSO2 ESB 调用参数化端点 Looping on Parameters

java - 使用嵌套的 for 循环检查数字是否为素数;如果是这样,将它们添加到集合中——不使用 isPrime 方法

python - Pyodbc 连接错误

python - 在一个实例中,我如何检测类成员何时被新实例成员替换?

python - 带有生成器的 Python 中的 DFS 算法

ios - 无法使用 '[APISKeyObjects]' 类型的索引为 'String' 类型的值添加下标吗?

javascript - 使用包含“的 jQuery 获取数据属性

PHP while 循环问题