我已经有一个 redis 节点,现在内存成本很高,我想将它迁移到更多实例。如果我在每个实例中都加载 rdb,那肯定会浪费很多。我可以使用“密钥”来获取所有密钥,然后通过对密钥执行一致的哈希来对数据进行分片,但这很丑……有什么好的解决方案吗?
问问题
164 次
1 回答
1
如果你在配置 AOF 的情况下运行 redis,你可以简单地编写一个读取 AOF 的脚本。这就是我们所做的。在 RDB 配置中使用 redis,我认为您无法做到这一点。
如果您正在运行 redis 2.6,则可以使用 migrate 命令:
http://redis.io/commands/migrate
您仍然需要使用KEYS
.
我认为没有更好的解决方案可以遍历所有键,KEYS
然后始终对它们进行哈希处理。
如果您不怕直接与 redis 通信,您可以KEYS *
在阅读时处理批量回复,以加快速度并节省内存。
于 2012-11-19T16:06:42.360 回答