Redis Cluster
Redis Cluster:从 Sentinel 到分片与故障转移 Redis 高可用有两个常见答案:Sentinel 和 Cluster。它们并不是同一套方案的两个名字。 Sentinel 解决的是一组主从节点如何自动切主;Cluster 除了故障转移,还要把数据和请求分散到多个 master。理解 Cluster,只需要先抓住一条主线: TEXTkey -> hash slot -> master -> 执行命令 | +-> replica 复制并在故障后接管 下文先完成选型,再沿着一次请求看 slot 路由,最后解释迁移和故障转移。 1. Sentinel 和 Cluster 怎么选 Sentinel(哨兵模式)由两部分组成: TEXTRedis 数据节点:1 个 master + 若干 replica,彼此保存同一份完整数据 Sentinel 进程:监控 master,协商故障状态,选择并提升 replica Sentinel 进程不保存业务数据,也不负责分片。切主以后,客户端需要发现新 master 并重新连接。它提高了可用性,但单个复制组的容量和写入吞吐仍受一个 master 限制。 所谓“哨兵集群”,通常是用多个 Sentinel 共同监控主从复制组,常见部署是 3 个。达到配置的 quorum 后,master 才会被判为客观下线;真正发起故障转移还需要获得 Sentinel 多数授权。 Cluster 则把数据拆到多个 master: ...