Peg*_*985 3 redis redis-sentinel redis-cluster
我打算创建一个高可用的 Redis 集群。在阅读了许多关于构建 Redis 集群的文章后,我很困惑。那么究竟是什么
Redis Sentinel Master1 Slave1 Slave2 集群的进一步问题:
关于 Redis 多节点分片集群的更多问题:
我不确定这两个解决方案是否是唯一的解决方案。希望你们能帮助我理解Redis的架构。抱歉问了这么多问题。
我将尝试回答您的一些问题,但首先让我描述 Redis 的不同部署选项。Redis 具有三种基本部署:单节点、哨兵和集群。
所以回答你的问题:
这两个部署之间的决定应基于您的预期负载。如果可以使用单个 Redis 主节点管理写入负载,则可以使用 Sentinel 部署。
如果一个节点无法处理您预期的负载,则必须进行集群部署。
Redis Sentinel 部署不可扩展,因此增大集群不会提高性能。唯一的例外是添加从站可以提高您的读取性能(以防您将读取请求定向到从站)。
Redis Cluster 运行在具有多个端口的单个节点上,仅用于开发和演示目的。在生产中它是无用的。
在 Redis Cluster 部署中,客户端应该可以访问所有节点(并且只有节点 Master1)。这是因为数据是在 master 之间进行分片的。如果客户端尝试向 Master1 写入数据,但 Master2 是数据的所有者,则 Master1 将向客户端返回 MOVE 消息,引导其向 Master2 发送请求。在所有 Redis 节点之前不能有一个 HAProxy。
与 5 中的答案相同,在集群部署中,客户端应该直接连接到所有主从,而不是通过 LB 或 Keepalived。
不确定我是否完全理解您的问题,但 Redis Cluster 是唯一可扩展的 Redis 解决方案。
Redis Cluster 部署只有在所有key都在同一个节点时才支持多key操作。您可以使用“哈希标签”来强制由同一个主处理多个键。
一些很好的链接可以帮助您更好地理解它:
不同Redis部署选项的说明:https : //blog.octo.com/en/what-redis-deployment-do-you-need
Redis Cluster架构详解:https : //blog.usejournal.com/first-step-to-redis-cluster-7712e1c31847