python - 从给定的 Redis 集群,我如何运行 Redis CLI 或 API 调用来获取整个集群上的每个键的列表,而不仅仅是一台机器?

标签 python redis redis-cli redis-cluster

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

我会接受任何语言的回答,尽管我更喜欢 Python。

为此,一个简单的 Redis CLI 命令也可以。

最佳答案

Redis 使用哨兵实现集群。

阅读有关 sentinel 的更多信息 - http://redis.io/topics/sentinel

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

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

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

如果您尝试从代码访问它.. 有各种可用的模块。我已经尝试使用 node-redis,用于 Node Js。

但是在生产环境中,我不建议你使用 KEYS 命令,因为它需要相当长的时间来处理数百万个键,而使用 SCAN 命令来扫描一些keys 它的语法是 SCAN CURSOR MATCH match COUNT count.. 例如 SCAN 0 MATCH * COUNT 10000.. 最初光标被视为 0,因为对更多键的迭代停止当返回的游标为 0 时。

关于python - 从给定的 Redis 集群,我如何运行 Redis CLI 或 API 调用来获取整个集群上的每个键的列表,而不仅仅是一台机器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34115145/

相关文章:

python - 接收类型错误 : can only concatenate list (not "NoneType") to list

c# - 将字典中的数据批量设置到 Redis

Redis 批量删除键会去除键名中的斜杠

heroku - 我可以使用带有连接 URL 的 redis-cli 吗?

linux - redis-cli 使用模式执行 ttl 命令

Python线程/守护进程

python - 在python/numpy中生成多对不相等的随机整数

python - 如何返回 while 循环的产品

ubuntu - 无法连接到位于 127.0.0.1 的 Redis :6379: Network is unreachable

java - 用于插入多个值的 Redis java api