一、创建网络

docker network create --subnet=172.10.1.0/24 redis

二、创建 Redis 容器

创建6个redis实例

docker create --name redis1 --net host --privileged=true -v /data/redis/share/redis1:/data redis:5.0.7 --cluster-enabled yes --appendonly yes --port 6381
docker create --name redis2 --net host --privileged=true -v /data/redis/share/redis2:/data redis:5.0.7 --cluster-enabled yes --appendonly yes --port 6382
docker create --name redis3 --net host --privileged=true -v /data/redis/share/redis3:/data redis:5.0.7 --cluster-enabled yes --appendonly yes --port 6383
docker create --name redis4 --net host --privileged=true -v /data/redis/share/redis4:/data redis:5.0.7 --cluster-enabled yes --appendonly yes --port 6384
docker create --name redis5 --net host --privileged=true -v /data/redis/share/redis5:/data redis:5.0.7 --cluster-enabled yes --appendonly yes --port 6385
docker create --name redis6 --net host --privileged=true -v /data/redis/share/redis6:/data redis:5.0.7 --cluster-enabled yes --appendonly yes --port 6386

命令说明:

docker create // 创建容器

–name redis1 // 容器名

–net host // docker网络,使用宿主机的ip和端口

–privileged=true // docker容器,获取宿主机root权限

-v /data/redis/share/redis1:/data // 容器的/data 挂载到宿主机 /data/redis/share/redis-node-1

redis:5.0.7 // redis 镜像名称和版本号

–cluster-enabled yes // redis.conf的配置:开启redis集群

–appendonly yes // redis.conf的配置:开启数据持久化

–port 6381 // redis.conf的配置:redis端口号

三、启动容器

docker start redis1 redis2 redis3 redis4 redis5 redis6

四、创建集群

1.进入redis1容器中

docker exec -it redis1 /bin/bash

2.配置一主一从

redis-cli --cluster create 192.168.20.10:6381 192.168.20.10:6382 192.168.20.10:6383 192.168.20.10:6384 192.168.20.10:6385 192.168.20.10:6386 --cluster-replicas 1

3.查看集群信息

(1)进入redis客户端

redis-cli -h 192.168.20.10 -p 6381 -c

(2)查看集群信息

cluster info

(3)查看节点信息

cluster nodes

(4)查看集群槽位信息

退出redis客户端执行命令

redis-cli --cluster check 192.168.20.10:6381

五、redis集群哈希槽扩容

1.新增两台redis

docker create --name redis-node-7 --net host --privileged=true -v /data/redis/share/redis-node-7:/data redis:5.0.7 --cluster-enabled yes --appendonly yes --port 6387
docker create --name redis-node-8 --net host --privileged=true -v /data/redis/share/redis-node-8:/data redis:5.0.7 --cluster-enabled yes --appendonly yes --port 6388

2.启动容器

docker start redis-node-7 redis-node-8

3.添加6387为master节点

(1)进入容器内

docker exec -it redis-node-7 /bin/bash

(2)添加节点

redis-cli --cluster add-node 192.168.20.10:6387 192.168.20.10:6381

说明:

192.168.20.10:6387:被添加节点

192.168.20.10:6381:集群内任意节点

执行结果:

root@dev:/data# redis-cli --cluster add-node 192.168.20.10:6387 192.168.20.10:6381
>>> Adding node 192.168.20.10:6387 to cluster 192.168.20.10:6381
>>> Performing Cluster Check (using node 192.168.20.10:6381)
M: e3b687667d24189134183edac32bf9a4f69c6033 192.168.20.10:6381slots:[0-5460] (5461 slots) master1 additional replica(s)
M: 981842c6e96abe8abc34326400565e0b2c44dd0f 192.168.20.10:6382slots:[5461-10922] (5462 slots) master1 additional replica(s)
S: 4f65496819a0490760d4e1375fb7a371732a1ba8 192.168.20.10:6386slots: (0 slots) slavereplicates 1b826b5348a69af7054e04c3908ee066e9649ae0
S: c450e9af3b9d84c4e8cee6e70e7317628c4a9960 192.168.20.10:6384slots: (0 slots) slavereplicates e3b687667d24189134183edac32bf9a4f69c6033
M: 1b826b5348a69af7054e04c3908ee066e9649ae0 192.168.20.10:6383slots:[10923-16383] (5461 slots) master1 additional replica(s)
S: 88be3f5ac4cd4c468004e829f3857666e9ff9bc5 192.168.20.10:6385slots: (0 slots) slavereplicates 981842c6e96abe8abc34326400565e0b2c44dd0f
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 192.168.20.10:6387 to make it join the cluster.
[OK] New node added correctly.
123456789101112131415161718192021222324252627

(3)查看节点信息

redis-cli --cluster check 192.168.20.10:6381

执行结果:

root@dev:/data# redis-cli --cluster check 192.168.20.10:6381
192.168.20.10:6381 (e3b68766...) -> 0 keys | 5461 slots | 1 slaves.
192.168.20.10:6382 (981842c6...) -> 1 keys | 5462 slots | 1 slaves.
192.168.20.10:6383 (1b826b53...) -> 0 keys | 5461 slots | 1 slaves.
192.168.20.10:6387 (c4629e20...) -> 0 keys | 0 slots | 0 slaves.
[OK] 1 keys in 4 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.20.10:6381)
M: e3b687667d24189134183edac32bf9a4f69c6033 192.168.20.10:6381slots:[0-5460] (5461 slots) master1 additional replica(s)
M: 981842c6e96abe8abc34326400565e0b2c44dd0f 192.168.20.10:6382slots:[5461-10922] (5462 slots) master1 additional replica(s)
S: 4f65496819a0490760d4e1375fb7a371732a1ba8 192.168.20.10:6386slots: (0 slots) slavereplicates 1b826b5348a69af7054e04c3908ee066e9649ae0
S: c450e9af3b9d84c4e8cee6e70e7317628c4a9960 192.168.20.10:6384slots: (0 slots) slavereplicates e3b687667d24189134183edac32bf9a4f69c6033
M: 1b826b5348a69af7054e04c3908ee066e9649ae0 192.168.20.10:6383slots:[10923-16383] (5461 slots) master1 additional replica(s)
S: 88be3f5ac4cd4c468004e829f3857666e9ff9bc5 192.168.20.10:6385slots: (0 slots) slavereplicates 981842c6e96abe8abc34326400565e0b2c44dd0f
M: c4629e200d17cfa3625d5769e279e02948a1386b 192.168.20.10:6387slots: (0 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

通过信息可以发现,6387 节点虽然已成功加入到集群,但并未分配槽号。

(4)分配槽号

redis-cli --cluster reshard 192.168.20.10:6381

说明:

192.168.20.10:6381:集群中任意节点 ip:port

执行结果

root@dev:/data# redis-cli --cluster reshard 192.168.20.10:6381
>>> Performing Cluster Check (using node 192.168.20.10:6381)
M: e3b687667d24189134183edac32bf9a4f69c6033 192.168.20.10:6381slots:[0-5460] (5461 slots) master1 additional replica(s)
M: 981842c6e96abe8abc34326400565e0b2c44dd0f 192.168.20.10:6382slots:[5461-10922] (5462 slots) master1 additional replica(s)
S: 4f65496819a0490760d4e1375fb7a371732a1ba8 192.168.20.10:6386slots: (0 slots) slavereplicates 1b826b5348a69af7054e04c3908ee066e9649ae0
S: c450e9af3b9d84c4e8cee6e70e7317628c4a9960 192.168.20.10:6384slots: (0 slots) slavereplicates e3b687667d24189134183edac32bf9a4f69c6033
M: 1b826b5348a69af7054e04c3908ee066e9649ae0 192.168.20.10:6383slots:[10923-16383] (5461 slots) master1 additional replica(s)
S: 88be3f5ac4cd4c468004e829f3857666e9ff9bc5 192.168.20.10:6385slots: (0 slots) slavereplicates 981842c6e96abe8abc34326400565e0b2c44dd0f
M: c4629e200d17cfa3625d5769e279e02948a1386b 192.168.20.10:6387slots: (0 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 4096        # 设置槽数据 16384/master 台数
What is the receiving node ID? c4629e200d17cfa3625d5769e279e02948a1386b    # 输入新节点 node id
Please enter all the source node IDs.Type 'all' to user all the nodes as source nodes for the hash slots.Type 'done' once you entered all the source nodes IDs.
Source node #1: all                  # 表示全部节点重新分配槽号

(5)再次查看节点信息

redis-cli --cluster check 192.168.20.10:6381

执行结果:

root@dev:/data# redis-cli --cluster check 192.168.20.10:6381
192.168.20.10:6381 (e3b68766...) -> 0 keys | 4096 slots | 1 slaves.
192.168.20.10:6382 (981842c6...) -> 1 keys | 4096 slots | 1 slaves.
192.168.20.10:6383 (1b826b53...) -> 0 keys | 4096 slots | 1 slaves.
192.168.20.10:6387 (c4629e20...) -> 0 keys | 4096 slots | 0 slaves.
[OK] 1 keys in 4 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.20.10:6381)
M: e3b687667d24189134183edac32bf9a4f69c6033 192.168.20.10:6381slots:[1365-5460] (4096 slots) master1 additional replica(s)
M: 981842c6e96abe8abc34326400565e0b2c44dd0f 192.168.20.10:6382slots:[6827-10922] (4096 slots) master1 additional replica(s)
S: 4f65496819a0490760d4e1375fb7a371732a1ba8 192.168.20.10:6386slots: (0 slots) slavereplicates 1b826b5348a69af7054e04c3908ee066e9649ae0
S: c450e9af3b9d84c4e8cee6e70e7317628c4a9960 192.168.20.10:6384slots: (0 slots) slavereplicates e3b687667d24189134183edac32bf9a4f69c6033
M: 1b826b5348a69af7054e04c3908ee066e9649ae0 192.168.20.10:6383slots:[12288-16383] (4096 slots) master1 additional replica(s)
S: 88be3f5ac4cd4c468004e829f3857666e9ff9bc5 192.168.20.10:6385slots: (0 slots) slavereplicates 981842c6e96abe8abc34326400565e0b2c44dd0f
M: c4629e200d17cfa3625d5769e279e02948a1386b 192.168.20.10:6387slots:[0-1364],[5461-6826],[10923-12287] (4096 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

可以看出每个节点都分配了 4096 个槽号,但是 新加入的节点所分配的槽号并不是连续的

因为对于新加入的节点,要重新分配槽号成本较大,故从三个旧节点移动部分槽号给新节点。

4.为新加入的master节点分配从节点

(1)将 6388 设置为 6387 从节点

redis-cli --cluster add-node 192.168.20.10:6388 192.168.20.10:6387 --cluster-slave --cluster-master-id c4629e200d17cfa3625d5769e279e02948a1386b

说明:

add-node:后边分别为新加入的节点和节点对应的master
cluster-slave:表示新加入的节点是slave节点
–cluster-master-id:表示slave对应的master的node ID

执行结果:

root@dev:/data# redis-cli --cluster add-node 192.168.20.10:6388 192.168.20.10:6387 --cluster-slave --cluster-master-id c4629e200d17cfa3625d5769e279e02948a1386b
>>> Adding node 192.168.20.10:6388 to cluster 192.168.20.10:6387
>>> Performing Cluster Check (using node 192.168.20.10:6387)
M: c4629e200d17cfa3625d5769e279e02948a1386b 192.168.20.10:6387slots:[0-1364],[5461-6826],[10923-12287] (4096 slots) master
M: 1b826b5348a69af7054e04c3908ee066e9649ae0 192.168.20.10:6383slots:[12288-16383] (4096 slots) master1 additional replica(s)
S: c450e9af3b9d84c4e8cee6e70e7317628c4a9960 192.168.20.10:6384slots: (0 slots) slavereplicates e3b687667d24189134183edac32bf9a4f69c6033
S: 88be3f5ac4cd4c468004e829f3857666e9ff9bc5 192.168.20.10:6385slots: (0 slots) slavereplicates 981842c6e96abe8abc34326400565e0b2c44dd0f
M: e3b687667d24189134183edac32bf9a4f69c6033 192.168.20.10:6381slots:[1365-5460] (4096 slots) master1 additional replica(s)
M: 981842c6e96abe8abc34326400565e0b2c44dd0f 192.168.20.10:6382slots:[6827-10922] (4096 slots) master1 additional replica(s)
S: 4f65496819a0490760d4e1375fb7a371732a1ba8 192.168.20.10:6386slots: (0 slots) slavereplicates 1b826b5348a69af7054e04c3908ee066e9649ae0
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 192.168.20.10:6388 to make it join the cluster.
Waiting for the cluster to join>>> Configure node as replica of 192.168.20.10:6387.
[OK] New node added correctly.

(2)查看节点信息

redis-cli --cluster check 192.168.20.10:6381

执行结果:

root@dev:/data# redis-cli --cluster check 192.168.20.10:6381
192.168.20.10:6381 (e3b68766...) -> 0 keys | 4096 slots | 1 slaves.
192.168.20.10:6382 (981842c6...) -> 1 keys | 4096 slots | 1 slaves.
192.168.20.10:6383 (1b826b53...) -> 0 keys | 4096 slots | 1 slaves.
192.168.20.10:6387 (c4629e20...) -> 0 keys | 4096 slots | 1 slaves.
[OK] 1 keys in 4 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.20.10:6381)
M: e3b687667d24189134183edac32bf9a4f69c6033 192.168.20.10:6381slots:[1365-5460] (4096 slots) master1 additional replica(s)
S: 7f81ef37a7ae89311f0c58542a3b92b87879e8a5 192.168.20.10:6388slots: (0 slots) slavereplicates c4629e200d17cfa3625d5769e279e02948a1386b
M: 981842c6e96abe8abc34326400565e0b2c44dd0f 192.168.20.10:6382slots:[6827-10922] (4096 slots) master1 additional replica(s)
S: 4f65496819a0490760d4e1375fb7a371732a1ba8 192.168.20.10:6386slots: (0 slots) slavereplicates 1b826b5348a69af7054e04c3908ee066e9649ae0
S: c450e9af3b9d84c4e8cee6e70e7317628c4a9960 192.168.20.10:6384slots: (0 slots) slavereplicates e3b687667d24189134183edac32bf9a4f69c6033
M: 1b826b5348a69af7054e04c3908ee066e9649ae0 192.168.20.10:6383slots:[12288-16383] (4096 slots) master1 additional replica(s)
S: 88be3f5ac4cd4c468004e829f3857666e9ff9bc5 192.168.20.10:6385slots: (0 slots) slavereplicates 981842c6e96abe8abc34326400565e0b2c44dd0f
M: c4629e200d17cfa3625d5769e279e02948a1386b 192.168.20.10:6387slots:[0-1364],[5461-6826],[10923-12287] (4096 slots) master1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

可以看出从节点已加入成功。

六、redis集群哈希槽收缩

(1)删除master对应slave节点

redis-cli --cluster del-node 192.168.20.10:6388 7f81ef37a7ae89311f0c58542a3b92b87879e8a5

说明:

192.168.20.10:6388:对应被删除节点
7f81ef37a7ae89311f0c58542a3b92b87879e8a5:对应被删除节点 node id

执行结果:

root@dev:/data# redis-cli --cluster del-node 192.168.20.10:6388 7f81ef37a7ae89311f0c58542a3b92b87879e8a5
>>> Removing node 7f81ef37a7ae89311f0c58542a3b92b87879e8a5 from cluster 192.168.20.10:6388
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.

(2)查看节点信息

redis-cli --cluster check 192.168.20.10:6381

执行结果:

root@dev:/data# redis-cli --cluster check 192.168.20.10:6381
192.168.20.10:6381 (e3b68766...) -> 0 keys | 4096 slots | 1 slaves.
192.168.20.10:6382 (981842c6...) -> 1 keys | 4096 slots | 1 slaves.
192.168.20.10:6383 (1b826b53...) -> 0 keys | 4096 slots | 1 slaves.
192.168.20.10:6387 (c4629e20...) -> 0 keys | 4096 slots | 0 slaves.
[OK] 1 keys in 4 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.20.10:6381)
M: e3b687667d24189134183edac32bf9a4f69c6033 192.168.20.10:6381slots:[1365-5460] (4096 slots) master1 additional replica(s)
M: 981842c6e96abe8abc34326400565e0b2c44dd0f 192.168.20.10:6382slots:[6827-10922] (4096 slots) master1 additional replica(s)
S: 4f65496819a0490760d4e1375fb7a371732a1ba8 192.168.20.10:6386slots: (0 slots) slavereplicates 1b826b5348a69af7054e04c3908ee066e9649ae0
S: c450e9af3b9d84c4e8cee6e70e7317628c4a9960 192.168.20.10:6384slots: (0 slots) slavereplicates e3b687667d24189134183edac32bf9a4f69c6033
M: 1b826b5348a69af7054e04c3908ee066e9649ae0 192.168.20.10:6383slots:[12288-16383] (4096 slots) master1 additional replica(s)
S: 88be3f5ac4cd4c468004e829f3857666e9ff9bc5 192.168.20.10:6385slots: (0 slots) slavereplicates 981842c6e96abe8abc34326400565e0b2c44dd0f
M: c4629e200d17cfa3625d5769e279e02948a1386b 192.168.20.10:6387slots:[0-1364],[5461-6826],[10923-12287] (4096 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

可以看出集群中已无 6388 节点。

(3)查看容器

退出容器,查看容器状态,可以看到 redis-node-8 容器已被停用

root@dev:~# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
c9827168c61d        redis:5.0.7         "docker-entrypoint.s…"   2 hours ago         Up 2 hours                              redis-node-7
d1ad96f4a4ee        redis:5.0.7         "docker-entrypoint.s…"   9 days ago          Up 3 hours                              redis6
db82428f5225        redis:5.0.7         "docker-entrypoint.s…"   9 days ago          Up 3 hours                              redis5
5a0c7a3516f5        redis:5.0.7         "docker-entrypoint.s…"   9 days ago          Up 2 hours                              redis4
cf9863611d0b        redis:5.0.7         "docker-entrypoint.s…"   9 days ago          Up 3 hours                              redis3
7fa64b2a8071        redis:5.0.7         "docker-entrypoint.s…"   9 days ago          Up 3 hours                              redis2
eae771794f0c        redis:5.0.7         "docker-entrypoint.s…"   9 days ago          Up 2 hours                              redis1

(4)重新分配 6387 的槽号

需先进入任意一台redis容器

执行命令

redis-cli --cluster reshard 192.168.20.10:6381

执行结果:

root@dev:/data# redis-cli --cluster reshard 192.168.20.10:6381
>>> Performing Cluster Check (using node 192.168.20.10:6381)
M: e3b687667d24189134183edac32bf9a4f69c6033 192.168.20.10:6381slots:[1365-5460] (4096 slots) master1 additional replica(s)
M: 981842c6e96abe8abc34326400565e0b2c44dd0f 192.168.20.10:6382slots:[6827-10922] (4096 slots) master1 additional replica(s)
S: 4f65496819a0490760d4e1375fb7a371732a1ba8 192.168.20.10:6386slots: (0 slots) slavereplicates 1b826b5348a69af7054e04c3908ee066e9649ae0
S: c450e9af3b9d84c4e8cee6e70e7317628c4a9960 192.168.20.10:6384slots: (0 slots) slavereplicates e3b687667d24189134183edac32bf9a4f69c6033
M: 1b826b5348a69af7054e04c3908ee066e9649ae0 192.168.20.10:6383slots:[12288-16383] (4096 slots) master1 additional replica(s)
S: 88be3f5ac4cd4c468004e829f3857666e9ff9bc5 192.168.20.10:6385slots: (0 slots) slavereplicates 981842c6e96abe8abc34326400565e0b2c44dd0f
M: c4629e200d17cfa3625d5769e279e02948a1386b 192.168.20.10:6387slots:[0-1364],[5461-6826],[10923-12287] (4096 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 4096      # 被删除的槽的数量
What is the receiving node ID? e3b687667d24189134183edac32bf9a4f69c6033   # 接手被删除槽号的 node id,这里指定给 6381。这里只能输入一个node id,若想将槽号分配给多个 node 需要多次执行该命令
Please enter all the source node IDs.Type 'all' to use all the nodes as source nodes for the hash slots.Type 'done' once you entered all the source nodes IDs.
Source node #1: c4629e200d17cfa3625d5769e279e02948a1386b     # 删除槽号的node id
Source node #2: done          # done 表示输入node id 结束(这里可以输入多个node id)
Do you want to proceed with the proposed reshard plan (yes/no)? yes

(5)再次查看节点信息

redis-cli --cluster check 192.168.20.10:6381

执行结果:

root@dev:/data# redis-cli --cluster check 192.168.20.10:6381
192.168.20.10:6381 (e3b68766...) -> 0 keys | 8192 slots | 1 slaves.
192.168.20.10:6382 (981842c6...) -> 1 keys | 4096 slots | 1 slaves.
192.168.20.10:6383 (1b826b53...) -> 0 keys | 4096 slots | 1 slaves.
192.168.20.10:6387 (c4629e20...) -> 0 keys | 0 slots | 0 slaves.
[OK] 1 keys in 4 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.20.10:6381)
M: e3b687667d24189134183edac32bf9a4f69c6033 192.168.20.10:6381slots:[0-6826],[10923-12287] (8192 slots) master1 additional replica(s)
M: 981842c6e96abe8abc34326400565e0b2c44dd0f 192.168.20.10:6382slots:[6827-10922] (4096 slots) master1 additional replica(s)
S: 4f65496819a0490760d4e1375fb7a371732a1ba8 192.168.20.10:6386slots: (0 slots) slavereplicates 1b826b5348a69af7054e04c3908ee066e9649ae0
S: c450e9af3b9d84c4e8cee6e70e7317628c4a9960 192.168.20.10:6384slots: (0 slots) slavereplicates e3b687667d24189134183edac32bf9a4f69c6033
M: 1b826b5348a69af7054e04c3908ee066e9649ae0 192.168.20.10:6383slots:[12288-16383] (4096 slots) master1 additional replica(s)
S: 88be3f5ac4cd4c468004e829f3857666e9ff9bc5 192.168.20.10:6385slots: (0 slots) slavereplicates 981842c6e96abe8abc34326400565e0b2c44dd0f
M: c4629e200d17cfa3625d5769e279e02948a1386b 192.168.20.10:6387slots: (0 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

这里可以看到 6387 已不包含任何槽号。

(6)删除节点 6387

redis-cli --cluster del-node 192.168.20.10:6387 c4629e200d17cfa3625d5769e279e02948a1386b

执行结果:

root@dev:/data# redis-cli --cluster del-node 192.168.20.10:6387 c4629e200d17cfa3625d5769e279e02948a1386b
>>> Removing node c4629e200d17cfa3625d5769e279e02948a1386b from cluster 192.168.20.10:6387
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.

(7)再次查看节点信息

redis-cli --cluster check 192.168.20.10:6381

执行结果:

root@dev:/data# redis-cli --cluster check 192.168.20.10:6381
192.168.20.10:6381 (e3b68766...) -> 0 keys | 8192 slots | 1 slaves.
192.168.20.10:6382 (981842c6...) -> 1 keys | 4096 slots | 1 slaves.
192.168.20.10:6383 (1b826b53...) -> 0 keys | 4096 slots | 1 slaves.
[OK] 1 keys in 3 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.20.10:6381)
M: e3b687667d24189134183edac32bf9a4f69c6033 192.168.20.10:6381slots:[0-6826],[10923-12287] (8192 slots) master1 additional replica(s)
M: 981842c6e96abe8abc34326400565e0b2c44dd0f 192.168.20.10:6382slots:[6827-10922] (4096 slots) master1 additional replica(s)
S: 4f65496819a0490760d4e1375fb7a371732a1ba8 192.168.20.10:6386slots: (0 slots) slavereplicates 1b826b5348a69af7054e04c3908ee066e9649ae0
S: c450e9af3b9d84c4e8cee6e70e7317628c4a9960 192.168.20.10:6384slots: (0 slots) slavereplicates e3b687667d24189134183edac32bf9a4f69c6033
M: 1b826b5348a69af7054e04c3908ee066e9649ae0 192.168.20.10:6383slots:[12288-16383] (4096 slots) master1 additional replica(s)
S: 88be3f5ac4cd4c468004e829f3857666e9ff9bc5 192.168.20.10:6385slots: (0 slots) slavereplicates 981842c6e96abe8abc34326400565e0b2c44dd0f
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

可以看出 6387 节点已被删除。

Docker 搭建 Redis 集群以及哈希槽动态扩容相关推荐

  1. 使用docker搭建redis集群

    使用docker搭建redis集群有两种,一种是单机多个docker容器,一种是多个机器的集群 基础知识 每个Redis集群中的节点都需要打开两个TCP连接.一个连接用于正常的给Client提供服务, ...

  2. 基于Docker搭建Redis集群(主从集群)

    最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题,我觉得之前写的这篇 <基于Docker的Redis集群搭建> 文章一定是有问题了,所以我花了几分钟浏览之前的文章总结了下面几 ...

  3. docker搭建redis集群

    #!/bin/bash #Author: 臆想的一只猫 #Created: 2022-04-06 17:42:33 #Description: 搭建redis集群function menu() {cl ...

  4. mac os 开启redis_高并发大流量,总会想到它!来一起通过docker搭建redis集群

    现在一般的项目都会用到redis做缓存,也不免有老铁没用过,我就一起说下吧. redis 官网 https://redis.io/ Redis是一个开源(BSD许可)的内存数据结构存储,用作数据库.缓 ...

  5. 利用Docker搭建Redis集群

    Redis集群搭建 运行Redis镜像 分别使用以下命令启动3个Redis docker run --name redis-6379 -p 6379:6379 -d hub.c.163.com/lib ...

  6. Linux_基于Docker搭建Redis集群

    时间:2017年07月11日星期二 说明:基于Ubuntu16.04-64bit,开始本教程前,请确保您的Linux系统已安装Docker. 步骤一:Redis镜像安装 1.下载Redis镜像 镜像中 ...

  7. 在单机上通过docker搭建redis集群试验

    一 Redis集群搭建 1.1 运行redis镜像 [root@centos-linux docker]# docker run -id --name=redis-6379 -p 6379:6379 ...

  8. ubuntu中使用docker搭建redis集群

    docker的安装,redis镜像拉取 创建外部桥接网络 docker network create -d macvlan --subnet=192.168.148.0/24 --gateway=19 ...

  9. 群辉通过Docker搭建Redis集群

    前言:打算整理一下redis使用分布式锁的方案,但是家里没有环境,刚好最近新搞了一台群辉,就用群辉来部署一个集群来做测试环境. 1,安装Docker 通过套件中心,在所有套件中找到Docker,然后点 ...

最新文章

  1. pipe 函数 (C语言)
  2. prim算法_最小生成树的本质是什么?Prim算法道破天机
  3. 设计模式 — 行为型模式 — 状态模式
  4. 2017软件工程实践第二次作业(数独)
  5. python while循环语句-python while循环控制流语句结构与用法
  6. 北邮OJ 2016 网预-Square Coins
  7. 对PostgreSQL的 ctid 的初步认识
  8. 担忧医生因AI技术而失业?杞人忧天
  9. python拼接两个数组_在Python中连接两个数组
  10. FreeBSD 8.3 发布
  11. 数据库怎么选择?终于有人讲明白了
  12. 它来了,带着曝光图又来了!疑似小米MIX4谍照流出
  13. 那些年,翻过山,趟过河,挖了山丘,黑了河沟,终于还是遇到了——跨服务器查询...
  14. 几种线程池的实现算法分析
  15. cad卸载_盘点那些年用过的神级CAD插件,每一款都舍不得卸载
  16. linux系统分区磁盘,Linux 操作系统手动磁盘分区详细说明
  17. python运动目标绘制轨迹_Python|运动目标检测
  18. php快递100查询,php采集快递100的快递查询api
  19. Unable to establish SSL connection.
  20. 浅谈自然语言处理(NLP)学习路线(一)--- 概述

热门文章

  1. 基于RRT自动探索算法的多智能体SLAM仿真实验
  2. JavaScript 函数式编程(三)
  3. Cannot set property 'innerHTML' of null解决办法
  4. JavaScript | 如何解决 Cannot set property of Undefined
  5. 日志文件中出现大量的“Closing connections ... MILLISECONDS“ 日志,且数量持续不断增加
  6. 用x种方式求第n项斐波那契数,99%的人只会第一种
  7. 帝国cms采集图文教程(下)
  8. 杰理之播歌下通话或者开启 siri 后,通话结束或退出 siri 后音量跟之前不一 致的问题【篇】
  9. vscode 高效开心开发uniapp
  10. 中国IT行业无领、白领和外国白领的一天比较(图)