0

我已经有一个 redis 节点,现在内存成本很高,我想将它迁移到更多实例。如果我在每个实例中都加载 rdb,那肯定会浪费很多。我可以使用“密钥”来获取所有密钥,然后通过对密钥执行一致的哈希来对数据进行分片,但这很丑……有什么好的解决方案吗?

4

1 回答 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 回答