【问题标题】:Utilizing two Redis instances - Similar to Mongos利用两个 Redis 实例 - 类似于 Mongos
【发布时间】:2012-07-31 23:19:49
【问题描述】:

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

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

谢谢,

S

【问题讨论】:

    标签: c# python redis


    【解决方案1】:

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

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

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

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

    如果您希望单个 IP 处理读取和写入以及多个分片写入主机,您可能需要自己编写“代理”,或者将代码放入您编写的客户端代码中。或者,this proxy announcement 可能包含您需要的内容,尽管我没有看到任何关于路由写入的内容。

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

    【讨论】:

    • 感谢@TheRealBill 非常有帮助,我很感激。
    猜你喜欢
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2013-01-22
    • 2012-05-25
    • 2023-03-08
    • 2022-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多