【发布时间】:2012-11-14 03:30:26
【问题描述】:
我在这些服务器的动态实例化集群中使用 Node + Redis。当这些服务器被实例化(在单独的虚拟机上)时,我想切断数据库。我有一个哈希环函数,可以将密钥指向相应的服务器。
如何迭代存储中的所有键?
那么当通过哈希环推送该密钥时,我如何处理被推回当前服务器而不导致无限循环的密钥?
我在本地需要一个新的 redis 实例吗?然后在操作完成后杀死旧的?节点redis客户端有没有办法做这个操作?
【问题讨论】:
我在这些服务器的动态实例化集群中使用 Node + Redis。当这些服务器被实例化(在单独的虚拟机上)时,我想切断数据库。我有一个哈希环函数,可以将密钥指向相应的服务器。
如何迭代存储中的所有键?
那么当通过哈希环推送该密钥时,我如何处理被推回当前服务器而不导致无限循环的密钥?
我在本地需要一个新的 redis 实例吗?然后在操作完成后杀死旧的?节点redis客户端有没有办法做这个操作?
【问题讨论】:
不幸的是,到目前为止,Redis 中还没有适当的键空间迭代。你有两个选择:
如果您使用 Redis 2.6,您可以使用 MIGRATE 以原子方式移动密钥,但是您的问题中没有明确指定您的集群设置,并且设计一个合适的 Redis 集群充满了细节。
我建议你在这里阅读 Redis Cluster 规范:http://redis.io/topics/cluster-spec 以及以下关于创建最终一致的 Redis 集群客户端的博文:http://antirez.com/news/36
【讨论】: