从给定的Redis群集中,如何运行Redis CLI或API调用以获取整个群集上的每个键的列表,而不仅仅是一台计算机?

时间:2015-12-06 07:38:25

标签: python redis redis-cli redis-cluster

这仅适用于初始Redis设置。显然,在生产系统上,整个多机数据库的转储很难排序。

我接受任何语言的答案,虽然我更喜欢Python。

用于此的简单Redis CLI命令也可以。

2 个答案:

答案 0 :(得分:3)

Redis使用sentinel实现群集。

详细了解sentinel - http://redis.io/topics/sentinel

使用终端的redis-cli -h hostname -p port连接到redis实例。

运行KEYS *命令获取该Redis实例上的所有密钥。

KEYS命令将正则表达式作为参数(*表示所有)。

如果您尝试从代码中访问它,可以使用各种模块。我尝试过使用node-redis,用于Node Js。

但是在生产时我不建议您使用KEYS命令,因为数百万的密钥需要相当长的时间,而是使用SCAN命令扫描一些密钥,其语法是{{ 1}} ..例如SCAN CURSOR MATCH match COUNT count ..最初光标被视为0,因为当返回的光标为0时,停止进一步键的迭代。

答案 1 :(得分:1)

from redis import StrictRedis
red = StrictRedis(host='127.0.0.1')
all_keys=red.keys("*")