【问题标题】:Migrate Redis Data To Cluster将 Redis 数据迁移到集群
【发布时间】:2016-02-08 03:04:06
【问题描述】:

我们有一个具有大量数据(超过 100GB)的 Redis 实例。我们还有一个带有 6 个节点的空 Redis 集群。将所有数据从独立实例移动到 Redis 集群并使其均匀分布的最佳方法是什么?

【问题讨论】:

  • "并使其均匀分布" 你不能这样做,因为不能保证键空间是均匀分布的。
  • 你是对的。在这种情况下,将节点分成相等数量的槽就足够了。

标签: redis redis-server redis-cluster


【解决方案1】:

经过一番搜索,我发现了一篇详细说明如何将数据移动到集群的帖子。迁移大量数据可能需要一些时间,但这是迄今为止我见过的最好的方法。

你可以在这里阅读:https://fnordig.de/2014/03/11/redis-cluster-with-pre-existing-data/

【讨论】:

  • 是的,这也是迄今为止我发现的最好的,但是 redis-trib.rb 在 redis 版本 5 中不再可用。我的测试集群在将插槽从实例 1 重新分片到实例 2 时卡住了将插槽 1186 从 127.0.0.1:30001 移动到 127.0.0.1:30002:ERR 目标实例回复错误:CLUSTERDOWN 集群已关闭
【解决方案2】:

在将数据转储到 RDB 文件后,您可以使用redis-rdb-toolsredis-cerberus 之类的集群代理程序来简化操作

rdb --command protocol RDB_FILE_PATH | nc PROXY_HOST PROXY_PORT

如果 AOF 文件包含像 RPOPLPUSH 这样的跨槽命令(取决于代理的实现),将 AOF 文件通过管道传送到代理中可能不起作用。但是,如果您实际使用此类命令,则不应该使用集群。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    相关资源
    最近更新 更多