我如何获得Redis中的所有密钥?共计10亿个密钥

时间:2014-10-23 05:23:02

标签: python redis key sortedset

redis中有10多亿个键 现在我想在python中获得 ALL 键。

partkeys = redisclient.keys("abcd*")

没问题。
但是

keys = redisclient.keys("ab*")

将引发ResponseError。

  

redis.exceptions.ResponseError:keys err

keys = redisclient.keys("*")

会引发ConnectionError redis.exceptions.ConnectionError:错误111连接demo.abcd.com:6397。拒绝连接。

任何帮助?

2 个答案:

答案 0 :(得分:4)

然后使用SCAN命令循环键集。使用KEYS总是一个坏主意。请注意,SCAN仅在Redis 2.8.0之后可用。

答案 1 :(得分:1)

我想您使用 py-redis ,使用scan_iter,然后:

for k in redisclient.scan_iter(match='*'):
     # Do something with k
     # ...

正如其他人所说, SCAN 仅在Redis 2.8.0

之后才可用