【问题标题】:Moving all redis records移动所有redis记录
【发布时间】:2012-11-14 03:30:26
【问题描述】:

我在这些服务器的动态实例化集群中使用 Node + Redis。当这些服务器被实例化(在单独的虚拟机上)时,我想切断数据库。我有一个哈希环函数,可以将密钥指向相应的服务器。
如何迭代存储中的所有键?
那么当通过哈希环推送该密钥时,我如何处理被推回当前服务器而不导致无限循环的密钥?
我在本地需要一个新的 redis 实例吗?然后在操作完成后杀死旧的?节点redis客户端有没有办法做这个操作?

【问题讨论】:

    标签: node.js redis


    【解决方案1】:

    不幸的是,到目前为止,Redis 中还没有适当的键空间迭代。你有两个选择:

    • 使用 RANDOMKEY 对数据集进行随机抽样。
    • 使用 KEYS * 可以阻止服务器,但如果您可以阻止服务器几秒钟,则可以解决问题。

    如果您使用 Redis 2.6,您可以使用 MIGRATE 以原子方式移动密钥,但是您的问题中没有明确指定您的集群设置,并且设计一个合适的 Redis 集群充满了细节。

    我建议你在这里阅读 Redis Cluster 规范:http://redis.io/topics/cluster-spec 以及以下关于创建最终一致的 Redis 集群客户端的博文:http://antirez.com/news/36

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      • 2015-10-06
      • 2011-04-22
      • 2023-04-03
      • 1970-01-01
      相关资源
      最近更新 更多