移动所有redis记录

时间:2012-11-13 19:15:36

标签: node.js redis

我在这些服务器的动态实例集群中使用Node + Redis。当这些服务器被实例化时(在单独的vm上)我想要切断数据库。我有一个哈希环函数来将键指向适当的服务器 如何迭代商店中的所有键? 然后当通过哈希环推送该密钥时,如何处理推回当前服务器的密钥而不会导致无限循环?
我是否需要本地新的redis实例?然后在操作完成后杀死旧的?有没有办法让节点redis客户端执行此操作?

1 个答案:

答案 0 :(得分:2)

不幸的是,目前Redis中没有正确的密钥空间迭代。您有两种选择:

  • 使用RANDOMKEY对数据集进行随机抽样。
  • 使用阻塞的KEYS *但是如果你可以阻止服务器几秒钟就可以做到这一点。

如果您使用Redis 2.6,要以原子方式移动密钥,您可以使用MIGRATE,但是在您的问题中未明确指定群集设置,并且设计正确的Redis群集时充满了详细信息。

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