doc: 阅读redis cluster文档

This commit is contained in:
asahi
2025-09-28 11:33:30 +08:00
parent 67818df180
commit e9a8e69327

View File

@@ -199,6 +199,7 @@
- [write safety](#write-safety) - [write safety](#write-safety)
- [connected to the majority of masters](#connected-to-the-majority-of-masters) - [connected to the majority of masters](#connected-to-the-majority-of-masters)
- [connected to the minority of masters](#connected-to-the-minority-of-masters) - [connected to the minority of masters](#connected-to-the-minority-of-masters)
- [Availability](#availability)
# redis # redis
@@ -3240,5 +3241,21 @@ Redis Cluster `tries harder` to retain writes that are performed by clients conn
- 如果`network partition`的持续时间超过`NODE_TIMEOUT`,那么所有针对`minority side`的写操作直到达到NODE_TIMEOUT都会被丢失 - 如果`network partition`的持续时间超过`NODE_TIMEOUT`,那么所有针对`minority side`的写操作直到达到NODE_TIMEOUT都会被丢失
- 因为minority side在`NODE_TIMEOUT`达到后如果仍然无法连接majority将拒绝接收写请求故而minority不可访问后window存在上限 - 因为minority side在`NODE_TIMEOUT`达到后如果仍然无法连接majority将拒绝接收写请求故而minority不可访问后window存在上限
#### Availability
redis cluster在`minority side of partition`方将不可用。在`majority side of the partition`,假设其拥有`majority of masters`并对每个不可达的master都拥有一个replica那么在时间超过`NODE_TIMEOUT`之后一个replica将会被重新选举变为新的master此时redis cluster将重新可访问。
> 上述描述具体含义如下:
> - 当network partition发生后majority partition部分可用而minority partition不可用
> - 当NODE_TIMEOUT达到后majority partition会重新选举master然后majority partition完全可用
> - 当network partition恢复后minority partition将作为replicas加入到集群作为replcias提供服务
> 故而redis cluster允许在少数节点发生故障时进行恢复需要majority of masters但是对于`large net splits`场景redis cluster并不适用。
如果cluster由N个master nodes组成每个master node都拥有一个replica那么cluster的majority side在一个节点partitioned之后仍然可访问但是当两个节点partitioned之后仍然能正常访问的概率为`1-(1/(N*2-1))`。
redis cluster目前存在`replicas migration`的特性replicas将会迁移到`orphaned masters`masters no longer having replicas这将在很多场景下提高redis cluster的可访问性。故而每次正常处理failure event后cluster都会重新调整replicas layout以更高的抵御下一次failure。