一、 Redis 6.x安装
- 安装依赖
# 安装wget
yum install -y wget
# 安装gcc-c++
yum install gcc-c++
# 切换库
make MALLOC=libc
- 下载安装包
wget https://download.redis.io/releases/redis-6.2.1.tar.gz
- 解压
tar xzf redis-6.2.1.tar.gz
- 编译安装
cd redis-6.2.1
[root@redismaster redis-6.2.1]# make && make install
cd src && make all
make[1]: Entering directory `/usr/local/tools/redis-6.2.1/src'
Hint: It's a good idea to run 'make test' ;)
make[1]: Leaving directory `/usr/local/tools/redis-6.2.1/src'
- 编译完成之后会提示是运行命令make test,运行之后会提示需要安装tcl8.5以上的版本
[root@redismaster redis-6.2.1]# make test
cd src && make test
make[1]: Entering directory `/usr/local/tools/redis-6.2.1/src'
You need tcl 8.5 or newer in order to run the Redis test
make[1]: *** [test] Error 1
make[1]: Leaving directory `/usr/local/tools/redis-6.2.1/src'
make: *** [test] Error 2
- 安装tcl
# 解压
tar -zxvf tcl8.6.1-src.tar.gz
# 进入目录
cd tcl8.6.1/unix
# configure
./configure
# 编译安装
make && make install
- 重新运行make test命令会测试一堆命令
\o/ All tests passed without errors!
Cleanup: may take some time... OK
make[1]: Leaving directory `/usr/local/tools/redis-6.2.1/src'
- 测试
src/redis-server
6. 修改配置/etc/sysctl.conf
# 内存分配策略
vm.overcommit_memory = 1
可选值:0、1、2。
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存
二、 配置启动
- 将redis根目录utils目录下的redis_init_script脚本拷贝到/etc/init.d目录下
cp /usr/local/tools/redis-6.2.1/utils/redis_init_script /etc/init.d/
- 将redis_init_script改名为reids_6379
mv /etc/init.d/redis_init_script /etc/init.d/redis_6379
- 创建配置文件目录和持久化目录
# 配置文件
mkdir /etc/redis
# 持久化文件目录
mkdir -p /var/redis/6379
# 创建日志文件
mkdir /usr/local/tools/redis-6.2.1/logs
- 将redis.conf配置文件拷贝到/etc/redis目录下,并重命名
cp /usr/local/tools/redis-6.2.1/redis.conf /etc/redis/
# 重命名
mv /etc/redis/redis.conf /etc/redis/6379.conf
- 修改配置文件中的配置项
# 让redis以守护进程的方式运行
daemonize yes
# 端口号
port 6379
# 持久化文件存储位置
dir /var/redis/6379
# redis进程文件
pidfile /var/run/redis_6379.pid
# 日志文件
logfile "/usr/local/tools/redis-6.2.1/logs/log"
- 启动redis
/etc/init.d/redis_6379 start
- 查看redis是否启动
[root@redismaster ~]# ps -ef | grep redis
root 621 1 0 12:08 ? 00:00:00 /usr/local/bin/redis-server 0.0.0.0:6379
root 1104 1025 0 12:09 pts/0 00:00:00 grep --color=auto redis
- 设置开机启动
# 进入i/etc/init.d目录
/etc/init.d
# 设置启动
chkconfig redis_6379 on
三、主从模式
- 按照上述步骤在另外一台服务器安装Redis
- 修改配置,并重启服务
master
requirepass 123456
从节点
# 设置要同步的master服务和端口号
replicaof 10.1.100.20 6379
# 设置master密码
masterauth 123456
- 分别登录主从节点,检查是否同步
master::
[root@redismaster src]# ./redis-cli --pass 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> INFO replication
# Replication
role:master
connected_slaves:1
slave0:ip=10.1.100.21,port=6379,state=online,offset=728,lag=1
master_failover_state:no-failover
master_replid:6f039426614823892c0c8deec7a9f43a8f4a927a
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:728
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:728
slave:
[root@redisnode1 src]# ./redis-cli
127.0.0.1:6379> INFO replication
# Replication
role:slave
master_host:10.1.100.20
master_port:6379
master_link_status:up
master_last_io_seconds_ago:10
master_sync_in_progress:0
slave_repl_offset:672
slave_priority:100
slave_read_only:1
connected_slaves:0
master_failover_state:no-failover
master_replid:6f039426614823892c0c8deec7a9f43a8f4a927a
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:672
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:672
- 在主节点添加数据,检查从节点是否可以查询到
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> get k2
"v2"
- 这样主从模式就搭建好了
四、压力测试
- 相关参数介绍
-c <clients> Number of parallel connections (default 50)
-n <requests> Total number of requests (default 100000)
-d <size> Data size of SET/GET value in bytes (default 2)
[root@redismaster src]# ./redis-benchmark
ERROR: NOAUTH Authentication required.
ERROR: failed to fetch CONFIG from 127.0.0.1:6379
WARN: could not fetch server CONFIG
====== PING_INLINE ======
100000 requests completed in 2.09 seconds
50 parallel clients
3 bytes payload
keep alive: 1
multi-thread: no
...
省略掉很多
...
Summary:
throughput summary: 41823.50 requests per second
latency summary (msec):
avg min p50 p95 p99 max
0.887 0.304 0.831 1.415 2.511 7.055
四、哨兵模式
- 创建文件
mkdir -p /var/sentinal/26379
mkdir -p /ect/sentinal
- 添加配置
master :
bind 10.1.100.20
port 26379
daemonize yes
logfile "/usr/local/tools/redis-6.2.1/logs/sentinal.log"
dir "/var/sentinal/26379"
sentinel monitor mymaster 10.1.100.20 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
sentinel auth-pass mymaster 123456
node 1:
bind 10.1.100.21
port 26379
daemonize yes
logfile "/usr/local/tools/redis-6.2.1/logs/sentinal.log"
dir "/var/sentinal/26379"
sentinel monitor mymaster 10.1.100.21 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
sentinel auth-pass mymaster 123456
node 2:
bind 10.1.100.22
port 26379
daemonize yes
logfile "/usr/local/tools/redis-6.2.1/logs/sentinal.log"
dir "/var/sentinal/26379"
sentinel monitor mymaster 10.1.100.22 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
sentinel auth-pass mymaster 123456
- 分别在三台机器上拷贝配置文件到/etc/sentinal目录下并重命名
cp sentinel.conf /etc/sentinal/26379.conf
- 三台机器分别执行
./src/redis-sentinel /etc/sentinal/26379.conf
- 观察日志
master
[root@redismaster redis-6.2.1]# tail -f logs/sentinal.log
5140:X 22 Mar 2021 17:12:47.820 * Removing the pid file.
5140:X 22 Mar 2021 17:12:47.820 # Sentinel is now ready to exit, bye bye...
1404:X 22 Mar 2021 17:16:43.038 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1404:X 22 Mar 2021 17:16:43.039 # Redis version=6.2.1, bits=64, commit=00000000, modified=0, pid=1404, just started
1404:X 22 Mar 2021 17:16:43.039 # Configuration loaded
1404:X 22 Mar 2021 17:16:43.040 * Increased maximum number of open files to 10032 (it was originally set to 1024).
1404:X 22 Mar 2021 17:16:43.040 * monotonic clock: POSIX clock_gettime
1404:X 22 Mar 2021 17:16:43.041 * Running mode=sentinel, port=26379.
1404:X 22 Mar 2021 17:16:43.041 # Sentinel ID is a26897acbad00c7141ab82c48184b357aa71a0ca
1404:X 22 Mar 2021 17:16:43.041 # +monitor master mymaster 10.1.100.20 6379 quorum 2
1404:X 22 Mar 2021 17:17:13.077 # +sdown master mymaster 10.1.100.20 6379
2035:X 22 Mar 2021 17:22:32.597 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2035:X 22 Mar 2021 17:22:32.597 # Redis version=6.2.1, bits=64, commit=00000000, modified=0, pid=2035, just started
2035:X 22 Mar 2021 17:22:32.597 # Configuration loaded
2035:X 22 Mar 2021 17:22:32.598 * Increased maximum number of open files to 10032 (it was originally set to 1024).
2035:X 22 Mar 2021 17:22:32.598 * monotonic clock: POSIX clock_gettime
2035:X 22 Mar 2021 17:22:32.599 * Running mode=sentinel, port=26379.
2035:X 22 Mar 2021 17:22:32.599 # Sentinel ID is a26897acbad00c7141ab82c48184b357aa71a0ca
2035:X 22 Mar 2021 17:22:32.599 # +monitor master mymaster 10.1.100.20 6379 quorum 2
2035:X 22 Mar 2021 17:22:32.601 * +slave slave 10.1.100.22:6379 10.1.100.22 6379 @ mymaster 10.1.100.20 6379
2035:X 22 Mar 2021 17:22:32.604 * +slave slave 10.1.100.21:6379 10.1.100.21 6379 @ mymaster 10.1.100.20 6379
2035:X 22 Mar 2021 17:22:44.971 * +sentinel sentinel b0eabaf72b0d0c14c48b691910887a9501ca6d2c 10.1.100.21 26379 @ mymaster 10.1.100.20 6379
2035:X 22 Mar 2021 17:22:53.001 * +sentinel sentinel 40d3b23868167f57d9c60f7939369faca05e2f69 10.1.100.22 26379 @ mymaster 10.1.100.20 6379
node 1
[root@redisnode1 redis-6.2.1]# tail -f logs/sentinal.log
16780:X 22 Mar 2021 17:12:53.257 * Removing the pid file.
16780:X 22 Mar 2021 17:12:53.257 # Sentinel is now ready to exit, bye bye...
1195:X 22 Mar 2021 17:17:07.648 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1195:X 22 Mar 2021 17:17:07.648 # Redis version=6.2.1, bits=64, commit=00000000, modified=0, pid=1195, just started
1195:X 22 Mar 2021 17:17:07.648 # Configuration loaded
1195:X 22 Mar 2021 17:17:07.649 * Increased maximum number of open files to 10032 (it was originally set to 1024).
1195:X 22 Mar 2021 17:17:07.649 * monotonic clock: POSIX clock_gettime
1195:X 22 Mar 2021 17:17:07.651 * Running mode=sentinel, port=26379.
1195:X 22 Mar 2021 17:17:07.651 # Sentinel ID is b0eabaf72b0d0c14c48b691910887a9501ca6d2c
1195:X 22 Mar 2021 17:17:07.651 # +monitor master mymaster 10.1.100.20 6379 quorum 2
1195:X 22 Mar 2021 17:17:37.730 # +sdown master mymaster 10.1.100.20 6379
2135:X 22 Mar 2021 17:22:42.887 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2135:X 22 Mar 2021 17:22:42.887 # Redis version=6.2.1, bits=64, commit=00000000, modified=0, pid=2135, just started
2135:X 22 Mar 2021 17:22:42.887 # Configuration loaded
2135:X 22 Mar 2021 17:22:42.888 * Increased maximum number of open files to 10032 (it was originally set to 1024).
2135:X 22 Mar 2021 17:22:42.888 * monotonic clock: POSIX clock_gettime
2135:X 22 Mar 2021 17:22:42.889 * Running mode=sentinel, port=26379.
2135:X 22 Mar 2021 17:22:42.889 # Sentinel ID is b0eabaf72b0d0c14c48b691910887a9501ca6d2c
2135:X 22 Mar 2021 17:22:42.889 # +monitor master mymaster 10.1.100.20 6379 quorum 2
2135:X 22 Mar 2021 17:22:42.891 * +slave slave 10.1.100.22:6379 10.1.100.22 6379 @ mymaster 10.1.100.20 6379
2135:X 22 Mar 2021 17:22:42.893 * +slave slave 10.1.100.21:6379 10.1.100.21 6379 @ mymaster 10.1.100.20 6379
2135:X 22 Mar 2021 17:22:44.839 * +sentinel sentinel a26897acbad00c7141ab82c48184b357aa71a0ca 10.1.100.20 26379 @ mymaster 10.1.100.20 6379
2135:X 22 Mar 2021 17:22:52.995 * +sentinel sentinel 40d3b23868167f57d9c60f7939369faca05e2f69 10.1.100.22 26379 @ mymaster 10.1.100.20 6379
node 2
[root@redisnode2 redis-6.2.1]# tail -f logs/sentinal.log
25004:X 22 Mar 2021 17:12:56.246 * Removing the pid file.
25004:X 22 Mar 2021 17:12:56.246 # Sentinel is now ready to exit, bye bye...
1242:X 22 Mar 2021 17:17:33.955 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1242:X 22 Mar 2021 17:17:33.956 # Redis version=6.2.1, bits=64, commit=00000000, modified=0, pid=1242, just started
1242:X 22 Mar 2021 17:17:33.956 # Configuration loaded
1242:X 22 Mar 2021 17:17:33.957 * Increased maximum number of open files to 10032 (it was originally set to 1024).
1242:X 22 Mar 2021 17:17:33.957 * monotonic clock: POSIX clock_gettime
1242:X 22 Mar 2021 17:17:33.959 * Running mode=sentinel, port=26379.
1242:X 22 Mar 2021 17:17:33.959 # Sentinel ID is 40d3b23868167f57d9c60f7939369faca05e2f69
1242:X 22 Mar 2021 17:17:33.959 # +monitor master mymaster 10.1.100.20 6379 quorum 2
1242:X 22 Mar 2021 17:18:03.974 # +sdown master mymaster 10.1.100.20 6379
1848:X 22 Mar 2021 17:22:50.933 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1848:X 22 Mar 2021 17:22:50.933 # Redis version=6.2.1, bits=64, commit=00000000, modified=0, pid=1848, just started
1848:X 22 Mar 2021 17:22:50.933 # Configuration loaded
1848:X 22 Mar 2021 17:22:50.934 * Increased maximum number of open files to 10032 (it was originally set to 1024).
1848:X 22 Mar 2021 17:22:50.934 * monotonic clock: POSIX clock_gettime
1848:X 22 Mar 2021 17:22:50.936 * Running mode=sentinel, port=26379.
1848:X 22 Mar 2021 17:22:50.936 # Sentinel ID is 40d3b23868167f57d9c60f7939369faca05e2f69
1848:X 22 Mar 2021 17:22:50.936 # +monitor master mymaster 10.1.100.20 6379 quorum 2
1848:X 22 Mar 2021 17:22:50.938 * +slave slave 10.1.100.22:6379 10.1.100.22 6379 @ mymaster 10.1.100.20 6379
1848:X 22 Mar 2021 17:22:50.941 * +slave slave 10.1.100.21:6379 10.1.100.21 6379 @ mymaster 10.1.100.20 6379
1848:X 22 Mar 2021 17:22:50.969 * +sentinel sentinel a26897acbad00c7141ab82c48184b357aa71a0ca 10.1.100.20 26379 @ mymaster 10.1.100.20 6379
1848:X 22 Mar 2021 17:22:51.131 * +sentinel sentinel b0eabaf72b0d0c14c48b691910887a9501ca6d2c 10.1.100.21 26379 @ mymaster 10.1.100.20 6379
- 检查哨兵状态
./src/redis-cli -h 10.1.100.22 -p 26379
sentinel master mymaster
SENTINEL slaves mymaster
SENTINEL sentinels mymaster
SENTINEL get-master-addr-by-name mymaster
- 观察如上日志即表示配置成功
五、 分布式
三台服务器,都是一主一从。
- 分别在三台机器上创建所需要目录
node1
mkdir -p /etc/redis-cluster
mkdir -p /var/log/redis
mkdir -p /var/redis/7001
kdir -p /var/redis/7002
node2
mkdir -p /etc/redis-cluster
mkdir -p /var/log/redis
mkdir -p /var/redis/7003
mkdir -p /var/redis/7004
node3
mkdir -p /etc/redis-cluster
mkdir -p /var/log/redis
mkdir -p /var/redis/7005
mkdir -p /var/redis/7006
- 分别在在三台虚拟机添加配置文件
node-1 :
7001.conf
port 7001
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7001.conf
cluster-node-timeout 15000
daemonize yes
pidfile /var/run/redis_7001.pid
dir /var/redis/7001
logfile /var/log/redis/7001.log
bind 10.1.100.20
appendonly yes
7002.conf
port 7002
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7002.conf
cluster-node-timeout 15000
daemonize yes
pidfile /var/run/redis_7002.pid
dir /var/redis/7002
logfile /var/log/redis/7002.log
bind 10.1.100.20
appendonly yes
7003.conf
port 7003
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7003.conf
cluster-node-timeout 15000
daemonize yes
pidfile /var/run/redis_7003.pid
dir /var/redis/7003
logfile /var/log/redis/7003.log
bind 10.1.100.20
appendonly yes
7004.conf
port 7004
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7004.conf
cluster-node-timeout 15000
daemonize yes
pidfile /var/run/redis_7004.pid
dir /var/redis/7004
logfile /var/log/redis/7004.log
bind 10.1.100.21
appendonly yes
7005.conf
port 7005
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7005.conf
cluster-node-timeout 15000
daemonize yes
pidfile /var/run/redis_7005.pid
dir /var/redis/7005
logfile /var/log/redis/7005.log
bind 10.1.100.22
appendonly yes
7006.conf
port 7006
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7006.conf
cluster-node-timeout 15000
daemonize yes
pidfile /var/run/redis_7006.pid
dir /var/redis/7006
logfile /var/log/redis/7006.log
bind 10.1.100.22
appendonly yes
- 准备脚本到/etc/init.d下
node1
cp redis_6379 redis_7001
cp redis_6379 redis_7002
node2
cp redis_6379 redis_7003
cp redis_6379 redis_7004
node3
cp redis_6379 redis_7005
cp redis_6379 redis_7006
- 修改端口号REDISPORT
修改redis_7001端口号为7001,修改redis_7002端口号为7002
修改redis_7003端口号为7003,修改redis_7002端口号为7004
修改redis_7005端口号为7005,修改redis_7002端口号为7005
- 启动集群
[root@redismaster init.d]# /etc/init.d/redis_7001 start
Starting Redis server...
[root@redismaster init.d]# /etc/init.d/redis_7002 start
Starting Redis server...
[root@redismaster init.d]# ps -ef | grep redis
root 5891 1 0 15:49 ? 00:00:00 /usr/local/bin/redis-server 10.1.100.20:7001 [cluster]
root 5996 1 0 15:50 ? 00:00:00 /usr/local/bin/redis-server 10.1.100.20:7002 [cluster]
root 6014 1020 0 15:50 pts/0 00:00:00 grep --color=auto redis
[root@redisnode1 ~]# /etc/init.d/redis_7003 start
Starting Redis server...
[root@redisnode1 ~]# /etc/init.d/redis_7004 start
Starting Redis server...
[root@redisnode1 ~]# ps -ef | grep redis
root 1373 1 0 15:50 ? 00:00:00 /usr/local/bin/redis-server 10.1.100.21:7003 [cluster]
root 1397 1 0 15:50 ? 00:00:00 /usr/local/bin/redis-server 10.1.100.21:7004 [cluster]
root 1444 925 0 15:50 pts/0 00:00:00 grep --color=auto redis
[root@redisnode2 ~]# /etc/init.d/redis_7005 start
Starting Redis server...
[root@redisnode2 ~]# /etc/init.d/redis_7006 start
Starting Redis server...
[root@redisnode2 ~]# ps -ef | grep redis
root 1562 1 0 15:50 ? 00:00:00 /usr/local/bin/redis-server 10.1.100.22:7005 [cluster]
root 1587 1 0 15:50 ? 00:00:00 /usr/local/bin/redis-server 10.1.100.22:7006 [cluster]
root 1623 928 0 15:51 pts/0 00:00:00 grep --color=auto redis
- 拷贝脚本到/usr/local/bin目录下(只需要在一台服务器上安装)
cp /usr/local/tools/redis-6.2.1/src/redis-trib.rb /usr/local/bin/
- 安装Ruby、rubygems(只需要在一台服务器上安装)
# 进入安装目录
cd /usr/local/tools/
# 下载Ruby(centos7默认是Ruby2.0,需要安装一个高版本的才行)
wget https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.0.tar.gz
# 解压
tar -zxvf ruby-3.0.0.tar.gz
# 安装
cd ruby-3.0.0/
./configure -prefix=/usr/local/ruby
make && make install
yum install -y rubygems
- 安装集群(只需要在一台服务器上安装)
[root@redismaster init.d]# redis-cli --cluster create 10.1.100.20:7001 10.1.100.20:7002 10.1.100.21:7003 10.1.100.21:7004 10.1.100.22:7005 10.1.100.22:7006 --cluster-replicas 1
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 10.1.100.21:7004 to 10.1.100.20:7001
Adding replica 10.1.100.22:7006 to 10.1.100.21:7003
Adding replica 10.1.100.20:7002 to 10.1.100.22:7005
M: 4e23578b0bc396285a1fa9de218008b35950d8f4 10.1.100.20:7001
slots:[0-5460] (5461 slots) master
S: 795848635fd4eaea14990eebd47dc75002a54a90 10.1.100.20:7002
replicates 2f105c215be1d9644cfaf55248898be0fb19ecb0
M: db606a097412850960e69e3c1291666c306b39ce 10.1.100.21:7003
slots:[5461-10922] (5462 slots) master
S: e553822af31ce3bc6a02b27e969293949529dc89 10.1.100.21:7004
replicates 4e23578b0bc396285a1fa9de218008b35950d8f4
M: 2f105c215be1d9644cfaf55248898be0fb19ecb0 10.1.100.22:7005
slots:[10923-16383] (5461 slots) master
S: 93bf3b77d3858649424ce1523444feb7997f7855 10.1.100.22:7006
replicates db606a097412850960e69e3c1291666c306b39ce
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
.
>>> Performing Cluster Check (using node 10.1.100.20:7001)
M: 4e23578b0bc396285a1fa9de218008b35950d8f4 10.1.100.20:7001
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: e553822af31ce3bc6a02b27e969293949529dc89 10.1.100.21:7004
slots: (0 slots) slave
replicates 4e23578b0bc396285a1fa9de218008b35950d8f4
M: 2f105c215be1d9644cfaf55248898be0fb19ecb0 10.1.100.22:7005
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
S: 795848635fd4eaea14990eebd47dc75002a54a90 10.1.100.20:7002
slots: (0 slots) slave
replicates 2f105c215be1d9644cfaf55248898be0fb19ecb0
S: 93bf3b77d3858649424ce1523444feb7997f7855 10.1.100.22:7006
slots: (0 slots) slave
replicates db606a097412850960e69e3c1291666c306b39ce
M: db606a097412850960e69e3c1291666c306b39ce 10.1.100.21:7003
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
可以看到现在已经安装完成了。