集群设置配置纪元
Syntax
CLUSTER SET-CONFIG-EPOCH config-epoch
- Available since:
- 3.0.0
- Time complexity:
- O(1)
- ACL categories:
-
@admin
,@slow
,@dangerous
,
此命令在新节点中设置特定的配置纪元。它仅在以下情况下有效:
- 节点的节点表为空。
- 节点当前的配置纪元为零。
这些先决条件是必要的,因为通常手动更改节点的配置纪元是不安全的,我们希望确保具有更高配置纪元值的节点(即最后进行故障转移的节点)在声明哈希槽所有权时胜过其他节点。
然而,这条规则有一个例外,那就是当从头创建一个新集群时。Redis Cluster 的配置纪元冲突解决算法可以处理在启动时所有配置相同的新节点,但这个过程很慢,应该是例外情况,只是为了确保无论发生什么,两个节点最终总是会从具有相同配置纪元的状态中脱离出来。
因此,使用CLUSTER SET-CONFIG-EPOCH
,当创建一个新集群时,我们可以在将节点加入集群之前为每个节点分配一个不同的渐进配置纪元。
RESP2/RESP3 回复
Simple string reply:OK
if the command was successful. Otherwise an error is returned.