码迷,mamicode.com
首页 > 其他好文 > 详细

Redis-Sentinel(哨兵)

时间:2020-06-17 20:25:18      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:mkdir   无法   pre   ack   启动   inf   connected   log   加入集群   

1. 哨兵的作用

(1)监控主库状态
(2)自动选主,切换(6381 slaveof no one)
(3)2号从库(6382)指向新主库(6381)
(4)应用透明(切换过程用户无法感知,不影响体验)
(5)自动处理故障节点(自愈)

2. 哨兵搭建过程

mkdir /data/26380  #26380为哨兵的端口,生产环境中为一个全新的节点
cd /data/26380
cat > sentinel.conf << EOF
port 26380
dir "/data/26380"
sentinel monitor mymaster 127.0.0.1 6380 1   #mymaster为自定义的集群名称,后面的IP和端口为主库的信息。后面的1,表示的是如果有一台哨兵监控到主库宕机,则视为真的宕机。
如果哨兵大于1台,数量根据实际情况而定。
如有3台哨兵,上述最后的1改为2,(因为判断主库是否宕机,在多台哨兵之间是投票制的,n/2+1)

sentinel down-after-milliseconds mymaster 5000  #主库发生宕机后,会有5秒的启动机会,超过5秒,就进行切换,此处5000的单位为毫秒。

sentinel auth-pass mymaster 123  #集群主库的密码
EOF

启动:
redis-sentinel /data/26380/sentinel.conf &>/tmp/sentinel.log &

切换演示

关闭主库
[root@redis-01 /data/26380]# redis-cli -p 6380 -a 123 shutdown

查看从库信息
[root@redis-01 /data/26380]# redis-cli -p 6381 -a 123 info replication
# Replication
role:slave   #当前还是从库
master_host:127.0.0.1
master_port:6382   #主库发生了改变
……省略部分内容

[root@redis-01 /data/26380]# redis-cli -p 6382 -a 123 info replication
# Replication
role:master   #6382变成了主
connected_slaves:1
slave0:ip=127.0.0.1,port=6381,state=online,offset=3286,lag=1  #因为6380宕机了,所以这里只有一台slave
master_repl_offset:3419
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:3418

把宕机的6380重新加入集群
[root@redis-01 /data/26380]# redis-server /data/6380/redis.conf 
[root@redis-01 /data/26380]# redis-cli -p 6382 -a 123 info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6381,state=online,offset=7649,lag=1
slave1:ip=127.0.0.1,port=6380,state=online,offset=7649,lag=0
master_repl_offset:7782
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:7781
[root@redis-01 /data/26380]# redis-cli -p 6380 -a 123 info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6382
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:8328
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

Redis-Sentinel(哨兵)

标签:mkdir   无法   pre   ack   启动   inf   connected   log   加入集群   

原文地址:https://www.cnblogs.com/xiets/p/13154206.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!