0

我一直在读到扩展 Redis 的正确方法是添加一个单独的实例(即使在同一台机器上也可以,因为 CPU 密集型)。我想知道是否有任何现有的组件可以促进类似于 Mongos 的循环/写入/读取,以便我可以调用它并且它会正确地写入/读取到其中一个底层实例。我意识到它比我上面所代表的更复杂,但不想通过尝试编写自己的代理等来重新发明轮子来处理这个问题。

任何建议/提示等将不胜感激。

谢谢,

小号

4

1 回答 1

1

该方法适用于扩展读取,但不适用于写入,因为 Redis 尚未与 redis-cluster 一起发布。

对于负载平衡读取,任何 TCP 负载平衡器都应该可以正常工作,例如Balance。我链接那个是因为它是基于软件的,并且设置和使用非常简单。当然,如果你有一个硬件负载均衡器,你可以在那里做,或者使用其他几个基于软件的负载均衡器。

另一种选择是在您的客户端代码中实现循环,尽管我不想自己这样做。一旦 redis-cluster 发布,你连接到哪个服务器就无关紧要了。

为了平衡写入,您需要采用对数据进行分片的方式,IMO 在Craigslist 的 Redis usgae页面上对此进行了很好的描述。如果你认为你需要走这条路,我建议你走 JZ 的路线并提前做好底层设置。理想情况下,一旦 redis-cluster 准备好,应该有最少的代码更改(如果有的话)移动到为您处理它的集群。

如果您想要一个 IP 来处理读取和写入以及多个分片写入主机,您可能需要自己编写那个“代理”,或者将代码放在您编写的客户端代码中。或者,此代理公告可能包含您需要的内容,尽管我没有看到任何有关路由的内容。

最终,我认为您需要在实现之前测试和验证您确实需要写入缩放。我发现如果我在一个或多个从属设备上进行所有读取,并让从属设备管理磁盘持久性,那么写入性能通常不是问题。

于 2012-07-31T15:19:49.690 回答