Redis一主两从三哨兵部署

基础环境:CentOS 7.5    Redis5.0.5

一、部署Redis

三个节点部署Redis,过程略

二、部署主从+哨兵

1、配置redis.conf

master   172.16.254.106

daemonize yes
dir /redis/data
logfile "/redis/log/redis.log"
requirepass redis
masterauth redis
bind 172.16.254.106
timeout 300
save ""

slave1    172.16.254.107

daemonize yes
logfile "/redis/log/redis.log"
dir /redis/data
requirepass redis
masterauth redis
timeout 300
bind 172.16.254.107
slaveof 172.16.254.106 6379
save ""

slave2     172.16.254.108

daemonize yes
logfile "/redis/log/redis.log"
dir /redis/data
requirepass redis
masterauth redis
timeout 300
bind 172.16.254.108
slaveof 172.16.254.106 6379
save ""

2、配置sentinel.conf

master   172.16.254.106

sentinel monitor mymaster 172.16.254.106 6379 2
sentinel down-after-milliseconds mymaster 10000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 15000
sentinel auth-pass mymaster redis
bind 172.16.254.106
port 26379
daemonize yes
logfile /redis/log/sentinel.log
dir /redis/data

slave1    172.16.254.107

sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 172.16.254.106 6379 2
sentinel down-after-milliseconds mymaster 10000
sentinel failover-timeout mymaster 15000
sentinel auth-pass mymaster redis
bind 172.16.254.107
port 26379
daemonize yes
logfile /redis/log/sentinel.log
dir /redis/data

slave2    172.16.254.108

sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 172.16.254.106 6379 2
sentinel down-after-milliseconds mymaster 10000
sentinel failover-timeout mymaster 15000
sentinel auth-pass mymaster redis
bind 172.16.254.108
port 26379
daemonize yes
logfile /redis/log/sentinel.log
dir /redis/data

3、启动redis和sentinel

/redis/bin/redis-server /redis/conf/redis.conf
/redis/bin/redis-sentinel /redis/conf/sentinel.conf

4、配置开机启动

su - redis -c "/redis/bin/redis-server /redis/conf/redis.conf"
su - redis -c "/redis/bin/redis-sentinel /redis/conf/sentinel.conf"

三、验证主从复制和哨兵

1、验证复制

master   172.16.254.106

redis-cli -p 6379 -h 172.16.254.106 -a redis
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
172.16.254.106:6379> set handong dongdong
OK

slave1    172.16.254.107

redis-cli -p 6379 -h 172.16.254.107 -a redis
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
172.16.254.107:6379> get handong
"dongdong"

slave2    172.16.254.108

redis-cli -p 6379 -h 172.16.254.108 -a redis
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
172.16.254.108:6379> get handong
"dongdong"

2、验证哨兵

在 master   172.16.254.106关闭redis

master   172.16.254.106

172.16.254.106:6379> shutdown
not connected>

查看sentinel日志

24832:X 02 Mar 2021 18:31:44.372 * +slave-reconf-inprog slave 172.16.254.107:6379 172.16.254.107 6379 @ mymaster 172.16.254.106 6379
24832:X 02 Mar 2021 18:31:44.372 * +slave-reconf-done slave 172.16.254.107:6379 172.16.254.107 6379 @ mymaster 172.16.254.106 6379
24832:X 02 Mar 2021 18:31:44.613 # -odown master mymaster 172.16.254.106 6379
24832:X 02 Mar 2021 18:31:44.613 # +failover-end master mymaster 172.16.254.106 6379
24832:X 02 Mar 2021 18:31:44.613 # +switch-master mymaster 172.16.254.106 6379 172.16.254.108 6379
24832:X 02 Mar 2021 18:31:44.613 * +slave slave 172.16.254.107:6379 172.16.254.107 6379 @ mymaster 172.16.254.108 6379
24832:X 02 Mar 2021 18:31:44.614 * +slave slave 172.16.254.106:6379 172.16.254.106 6379 @ mymaster 172.16.254.108 6379
24832:X 02 Mar 2021 18:31:54.740 # +sdown slave 172.16.254.106:6379 172.16.254.106 6379 @ mymaster 172.16.254.108 6379

日志显示master已转到 172.16.254.108

slave1    172.16.254.107

172.16.254.107:6379> info replication
# Replication
role:slave
master_host:172.16.254.108
master_port:6379
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:1066441
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:03dbe80af15f63cdbec15fea68fb1e61d755448c
master_replid2:d4597eea20a0a990b90617b9a012235dbbf56c9b
master_repl_offset:1066441
second_repl_offset:1039824
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:17866
repl_backlog_histlen:1048576

查看sentinel日志

31194:X 02 Mar 2021 18:31:42.541 # +sdown master mymaster 172.16.254.106 6379
31194:X 02 Mar 2021 18:31:42.708 # +new-epoch 3
31194:X 02 Mar 2021 18:31:42.712 # +vote-for-leader 6c89091bdbc3096afc92a229f8b76f1addbadb02 3
31194:X 02 Mar 2021 18:31:43.074 # +config-update-from sentinel 6c89091bdbc3096afc92a229f8b76f1addbadb02 172.16.254.106 26379 @ mymaster 172.16.254.106 6379
31194:X 02 Mar 2021 18:31:43.074 # +switch-master mymaster 172.16.254.106 6379 172.16.254.108 6379
31194:X 02 Mar 2021 18:31:43.075 * +slave slave 172.16.254.107:6379 172.16.254.107 6379 @ mymaster 172.16.254.108 6379
31194:X 02 Mar 2021 18:31:43.075 * +slave slave 172.16.254.106:6379 172.16.254.106 6379 @ mymaster 172.16.254.108 6379
31194:X 02 Mar 2021 18:31:53.156 # +sdown slave 172.16.254.106:6379 172.16.254.106 6379 @ mymaster 172.16.254.108 6379日志显示master已转到172.16.254.108

slave2    172.16.254.108

172.16.254.108:6379> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=172.16.254.107,port=6379,state=online,offset=1083399,lag=1
master_replid:03dbe80af15f63cdbec15fea68fb1e61d755448c
master_replid2:d4597eea20a0a990b90617b9a012235dbbf56c9b
master_repl_offset:1083399
second_repl_offset:1039824
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1005531
repl_backlog_histlen:77869

在redis命令行查到当前节点为master

查看sentinel日志

31320:X 02 Mar 2021 18:31:41.900 # +sdown master mymaster 172.16.254.106 6379
31320:X 02 Mar 2021 18:31:42.001 # +odown master mymaster 172.16.254.106 6379 #quorum 2/2
31320:X 02 Mar 2021 18:31:42.001 # +new-epoch 3
31320:X 02 Mar 2021 18:31:42.001 # +try-failover master mymaster 172.16.254.106 6379
31320:X 02 Mar 2021 18:31:42.063 # +vote-for-leader 58efcb63fbf69a680b49265dd5f789ecf90d44de 3
31320:X 02 Mar 2021 18:31:42.063 # 6c89091bdbc3096afc92a229f8b76f1addbadb02 voted for 6c89091bdbc3096afc92a229f8b76f1addbadb02 3
31320:X 02 Mar 2021 18:31:42.071 # 1b8a0ee301ad416c543a90e221e8144888ae4e2a voted for 6c89091bdbc3096afc92a229f8b76f1addbadb02 3
31320:X 02 Mar 2021 18:31:42.431 # +config-update-from sentinel 6c89091bdbc3096afc92a229f8b76f1addbadb02 172.16.254.106 26379 @ mymaster 172.16.254.106 6379
31320:X 02 Mar 2021 18:31:42.431 # +switch-master mymaster 172.16.254.106 6379 172.16.254.108 6379
31320:X 02 Mar 2021 18:31:42.431 * +slave slave 172.16.254.107:6379 172.16.254.107 6379 @ mymaster 172.16.254.108 6379
31320:X 02 Mar 2021 18:31:42.431 * +slave slave 172.16.254.106:6379 172.16.254.106 6379 @ mymaster 172.16.254.108 6379
31320:X 02 Mar 2021 18:31:52.512 # +sdown slave 172.16.254.106:6379 172.16.254.106 6379 @ mymaster 172.16.254.108 6379

启动 172.16.254.106节点redis服务

redis-server /redis/conf/redis.conf

172.16.254.106

172.16.254.106:6379> info replication
# Replication
role:slave
master_host:172.16.254.108
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:1117795
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:03dbe80af15f63cdbec15fea68fb1e61d755448c
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1117795
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1106692
repl_backlog_histlen:11104

可以看到redis启动之后,变成了slave节点。

查看三个节点的sentinel日志都出现以下信息:

24832:X 02 Mar 2021 18:36:50.723 # -sdown slave 172.16.254.106:6379 172.16.254.106 6379 @ mymaster 172.16.254.108 6379

172.16.254.106作为slave的身份已经加入。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值