Update Redis_集群模式.md
This commit is contained in:
parent
9ba2b98e36
commit
60a671908f
@ -43,7 +43,7 @@ HASH_SLOT = CRC16(key) mod 16384
|
||||
|
||||
#### 1. 请求重定向
|
||||
|
||||
在集群模式下,Redis接收到命令时会先计算键对应的槽,然后根据槽找出对应的目标节点,如果目标节点就是此时所在的节点,则直接进行处理,否则返回 MOVED 重定向消息给客户端,通知客户端去正确的节点上执行操作。
|
||||
在集群模式下,Redis 接收到命令时会先计算键对应的槽,然后根据槽找出对应的目标节点,如果目标节点就是此时所在的节点,则直接进行处理,否则返回 MOVED 重定向消息给客户端,通知客户端去正确的节点上执行操作。
|
||||
|
||||
#### 2. Smart 客户端
|
||||
|
||||
@ -172,7 +172,8 @@ redis-cli -h 127.0.0.1 -p 6479 cluster nodes
|
||||
```
|
||||
|
||||
<div align="center"> <img src="../pictures/redis-cluster-nodes.png"/> </div>
|
||||
想要让新加入的节点能够进行读写操作,可以使用 `reshard` 命令为其分配槽,这里我们将其他三个主节点上的槽迁移一部分到 6485 节点上,这里一共迁移 4096 个槽,即 16384 除以 4 。 `cluster-from ` 用于指明槽的源节点,可以为多个,`cluster-to` 为槽的目标节点,`cluster-slots` 为需要迁移的槽的总数:
|
||||
|
||||
想要让新加入的节点能够进行读写操作,可以使用 `reshard` 命令为其分配槽,这里我们将其他三个主节点上的槽迁移一部分到 6485 节点上,这里一共迁移 4096 个槽,即 16384 除以 4 。 `cluster-from` 用于指明槽的源节点,可以为多个,`cluster-to` 为槽的目标节点,`cluster-slots` 为需要迁移的槽的总数:
|
||||
|
||||
```shell
|
||||
redis-cli --cluster reshard 127.0.0.1:6479 \
|
||||
@ -184,6 +185,7 @@ redis-cli --cluster reshard 127.0.0.1:6479 \
|
||||
迁移后,再次使用 `cluster nodes` 命令可以查看到此时 6485 上已经有其他三个主节点上迁移过来的槽:
|
||||
|
||||
<div align="center"> <img src="../pictures/redis-cluster-nodes2.png"/> </div>
|
||||
|
||||
为保证高可用,可以为新加入的主节点添加从节点,命令如下。`add-node` 接收两个参数,第一个为需要添加的从节点,第二个参数为集群内任意节点,用于发现集群。`cluster-master-id` 参数用于指明作为哪个主节点的从节点,如果不加这个参数,则自动分配给从节点较少的主节点:
|
||||
|
||||
```shell
|
||||
@ -199,7 +201,7 @@ redis-cli --cluster add-node 127.0.0.1:6486 127.0.0.1:6479 --cluster-slave \
|
||||
redis-cli --cluster del-node 127.0.0.1:6479 `<node-id>`
|
||||
```
|
||||
|
||||
需要注意的是待删除的主节点上必须为空,如果不为空则需要将它上面的槽和数据迁移到其他节点上,和扩容时一样,可以使用`reshard`命令来完成数据迁移。
|
||||
需要注意的是待删除的主节点上必须为空,如果不为空则需要将它上面的槽和数据迁移到其他节点上,和扩容时一样,可以使用 `reshard` 命令来完成数据迁移。
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user