- 配置主机Host67为master服务器
- 配置主机host68为 slave服务器
- 配置主机host69运行哨兵服务
- 测试配置
IP地址 | 主机名 |
192.168.10.167 | redis167 |
192.168.10.168 | redis168 |
192.168.10.169 | redis169 |
步骤一:配置主机Host67为master服务器
[root@redis169 ~]# vim /etc/redis.conf
bind 192.168.10.169
port 6379
[root@redis169 ~]# systemctl start redis
[root@redis169 ~]# redis-cli -h 192.168.10.169 -p 6379
192.168.10.169:6379> info replication
# Replication
role:master
connected_slaves:0
master_replid:854e99afaa5bf6f324ea939a0c7cb954bebacfbf
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
步骤二:配置slave服务器host68
[root@redis168 ~]# vim /etc/redis.conf
port 6379
bind 192.168.10.168
[root@redis168 ~]# systemctl start redis
[root@redis168 ~]# redis-cli -h 192.168.10.168 -p 6379
192.168.10.168:6379> info replication
# Replication
role:master
connected_slaves:0
master_replid:c638645a00206c150b75db92500ca4bb7256f44d
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
192.168.10.168:6379> REPLICAOF 192.168.10.169 6379
OK
192.168.10.168:6379> config rewrite
OK
192.168.10.168:6379> info replication
# Replication
role:slave
master_host:192.168.10.169
master_port:6379
master_link_status:up
master_last_io_seconds_ago:6
master_sync_in_progress:0
slave_repl_offset:14
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:57f7736d356b9c08bcf62412e36c36d066bcb981
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:14
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:14
步骤三:配置主机host69运行哨兵服务
[root@redis167 ~]# vim /etc/redis-sentinel.conf
bind 192.168.10.167
port 26379
daemonize yes
sentinel monitor mymaster 192.168.10.169 6379 1
[root@redis167 ~]# systemctl start redis-sentinel.service
[root@redis167 ~]# netstat -ntupl|grep 26379
tcp 0 0 0.0.0.0:26379 0.0.0.0:* LISTEN 43343/redis-sentine
tcp6 0 0 :::26379 :::* LISTEN 43343/redis-sentine
步骤四:测试配置
思路:停止master主机的redis 服务,原slave角色会升级为主,哨兵服务会自动监视新的master服务,宕机的master 主机恢复后自动配置为当前主的从服务器。
停止master主机的redis 服务
[root@redis169 ~]# systemctl stop redis
在slave服务器查看角色
192.168.10.168:6379> info replication
# Replication
role:master 角色升级为主
connected_slaves:0 没从服务器
master_replid:fa0f962f88ecb4755d7cc95961841678a1caa43a
master_replid2:4a186e2c58c2aa05730fb39c0f44c9bd52dcadce
master_repl_offset:5182
second_repl_offset:900
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:5182
宕机的master 主机恢复后自动配置为当前主的从服务器。
[root@redis169 ~]# systemctl start redis
[root@redis169 ~]# redis-cli -h 192.168.10.169 -p 6379
192.168.10.169:6379> info replication
# Replication
role:slave
master_host:192.168.10.169
master_port:6379
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
slave_repl_offset:0
master_link_down_since_seconds:1748097868
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:7a10f095ba10065594afad67ea4de531b5ecc11a
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0