我正在使用Predis连接到Redis 3.0.2群集。因此,我可以选择使用predis
或redis
群集策略。我想知道选择其中一个是否有任何明显的利弊?
基于我浏览文档,我脑子里有这几点,但我不确定我的理解是否正确:
使用redis
策略时,我们不必在建立连接时列出群集的每个节点。 Reference(可能是职业选手:))
使用redis-cluster时,无需传递所有节点 组成您的集群,但您只需指定几个节点
上面链接的文章的下一行说:
Predis将自动获取完整和更新的插槽地图 直接从Redis联系其中一台服务器。
在性能方面可能是骗局吗?因为Predis需要在决定选择哪个节点进行当前读/写操作之前从服务器获取一些数据?
我们计划使用Redis来存储PHP会话。它是一个AJAX繁重的Web应用程序,在高峰时段拥有数千名活跃用户。这就是为什么我们想要在多个Redis节点之间传播负载。我们很乐意手动维护连接建立代码中的服务器地址列表,以便使用predis
策略,如果与此特定用例的redis
策略相比,预计它会提供明显更好的性能。
答案 0 :(得分:2)
IIUC你在使用Predis的客户端分片与利用Redis v3的群集功能之间进行内部辩论。
当数据库不支持群集时,客户端分片是一个很好的集群,这种方法通常是最初最简单的实现。但是,当数据库确实提供本机群集功能时 - 就像Redis v3一样 - 你几乎总是更好地使用它。
就性能而言,我不确定这些方法之间是否存在任何显着差异。 Redis分区也在http://redis.io/topics/partitioning
进行了讨论