Predis:两种集群策略的优缺点
Predis: Pros and Cons of the two cluster strategies
我正在使用 Predis 连接到 Redis 3.0.2 集群。因此,我可以选择使用 predis
或 redis
集群策略。我想知道选择其中一个而不是另一个是否有任何重要的利弊?
根据我在文档中的徘徊,我想到了以下几点,但我不确定我的理解是否正确:
使用redis
策略时,我们不必在建立连接时列出集群的每个节点。 Reference(可能是专业人士 :))
When using redis-cluster, it is not necessary to pass all of the nodes
that compose your cluster but you can simply specify only a few nodes
上面链接的文章的下一行说:
Predis will automatically fetch the full and updated slots map
directly from Redis by contacting one of the servers.
这会不会是性能方面的一个缺点?因为 Predis 在决定当前 read/write 操作哪个节点 select 之前需要从服务器获取一些数据?
上下文:
我们计划使用 Redis 来存储 PHP 会话。它是一个 AJAX 繁重的 Web 应用程序,在高峰时段有数千名活跃用户。这就是为什么我们要将负载分散到多个 Redis 节点上。我们很乐意在连接建立代码中手动维护服务器地址列表,以便使用 predis
策略,如果与此特定用例的 redis
策略相比,它有望提供更好的性能。
IIUC 您正在内部争论使用 Predis 的客户端分片还是利用 Redis v3 的集群功能。
当数据库不支持时,客户端分片非常适合集群,而且这种方法最初通常是最简单的实现方式。但是,当数据库确实提供本机集群功能时(例如 Redis v3 的情况),使用它几乎总是更好。
就性能而言,我不太确定这些方法之间是否存在任何显着差异。 Redis 分区也在 http://redis.io/topics/partitioning
中讨论
我正在使用 Predis 连接到 Redis 3.0.2 集群。因此,我可以选择使用 predis
或 redis
集群策略。我想知道选择其中一个而不是另一个是否有任何重要的利弊?
根据我在文档中的徘徊,我想到了以下几点,但我不确定我的理解是否正确:
使用
redis
策略时,我们不必在建立连接时列出集群的每个节点。 Reference(可能是专业人士 :))When using redis-cluster, it is not necessary to pass all of the nodes that compose your cluster but you can simply specify only a few nodes
上面链接的文章的下一行说:
Predis will automatically fetch the full and updated slots map directly from Redis by contacting one of the servers.
这会不会是性能方面的一个缺点?因为 Predis 在决定当前 read/write 操作哪个节点 select 之前需要从服务器获取一些数据?
上下文:
我们计划使用 Redis 来存储 PHP 会话。它是一个 AJAX 繁重的 Web 应用程序,在高峰时段有数千名活跃用户。这就是为什么我们要将负载分散到多个 Redis 节点上。我们很乐意在连接建立代码中手动维护服务器地址列表,以便使用 predis
策略,如果与此特定用例的 redis
策略相比,它有望提供更好的性能。
IIUC 您正在内部争论使用 Predis 的客户端分片还是利用 Redis v3 的集群功能。
当数据库不支持时,客户端分片非常适合集群,而且这种方法最初通常是最简单的实现方式。但是,当数据库确实提供本机集群功能时(例如 Redis v3 的情况),使用它几乎总是更好。
就性能而言,我不太确定这些方法之间是否存在任何显着差异。 Redis 分区也在 http://redis.io/topics/partitioning
中讨论