云计算运维

Windows Server 2003 - Windows Server 2019 系统工具,Linux系统脚本,Mysql、Nginx、PHP、Redis、K8S、Seafile、Weblogic 、Jenkins、DNS、DHCP、FTP、IIS、Zookeeper、Rabbitmq、Oracle、Tomcat、Mavrn等服务搭建维护,请关注我.

Redis集群-哨兵模式搭建(1主2从3哨兵节点)


主机规划

类型IP地址端口号
192.168.77.1456379
从1192.168.77.1466379
从2192.168.77.1476379
哨兵1192.168.77.14526379
哨兵2192.168.77.14626379
哨兵3192.168.77.14726379

1主2从搭建

见主从复制搭建,Redis集群-主从复制搭建

哨兵配置

哨兵配置每个节点执行。

从安装包中,复制哨兵配置文件到redis配置中,作为哨兵节点的配置文件


 cp /opt/redis-7.0.4/sentinel.conf /opt/redis/conf/

编辑哨兵配置文件修改内容如下:

port 26379
 #设置为后台启动
 daemonize yes
 pidfile "/opt/redis/tmp/redis-sentinel.pid"
 logfile "/opt/redis/logs/redis-sentinel.log"
 dir "/opt/redis"
 #哨兵sentinel监控的redis主节点的 ip port 
 sentinel monitor mymaster 192.168.77.145 6379 2
 #当在Redis实例中开启了requirepass,所有连接Redis实例的客户端都要提供密码。需要注意的是,master实例也需要配置masterauth,否则master实例下线重新上线后,会无法加入到集群中
 sentinel auth-pass mymaster 123456

启动哨兵服务

 /opt/redis/bin/redis-sentinel /opt/redis/conf/sentinel.conf

哨兵配置查看

[root@dba Wed Apr 19 09:38 ~]# redis-cli -p 26379 info Sentinel
 # Sentinel
 sentinel_masters:1
 sentinel_tilt:0
 sentinel_tilt_since_seconds:-1
 sentinel_running_scripts:0
 sentinel_scripts_queue_length:0
 sentinel_simulate_failure_flags:0
 master0:name=mymaster,status=ok,address=192.168.77.145:6379,slaves=2,sentinels=3

模拟故障转移

关闭主节点192.168.77.145:6379,间隔一会后再次查看可以看到master节点变为了192.168.77.147:6379

[root@dba Wed Apr 19 09:40 ~]# redis-cli -a 123456 shutdown
 [root@dba Wed Apr 19 09:42 ~]# redis-cli -p 26379 info Sentinel
 # Sentinel
 sentinel_masters:1
 sentinel_tilt:0
 sentinel_tilt_since_seconds:-1
 sentinel_running_scripts:0
 sentinel_scripts_queue_length:0
 sentinel_simulate_failure_flags:0
 master0:name=mymaster,status=ok,address=192.168.77.147:6379,slaves=2,sentinels=3

在选举后的master节点192.168.77.147:6379上查看当前仅有192.168.77.146:6379节点在线,192.168.77.145:6379因为已经shutdown了

[root@dbc ~]# redis-cli -a 123456 info replication
 # Replication
 role:master
 connected_slaves:1
 slave0:ip=192.168.77.146,port=6379,state=online,offset=1114835,lag=1
 master_failover_state:no-failover
 master_replid:c556a04bd19dfc7627743569c9f2613dc8a7232b
 master_replid2:ce16d352e923b9c77de6dd925f289dcd27e590ca
 master_repl_offset:1115121
 second_repl_offset:1090349
 repl_backlog_active:1
 repl_backlog_size:1048576
 repl_backlog_first_byte_offset:1051856
 repl_backlog_histlen:63266

启动恢复192.168.77.145:6379节点服务,并再次在检查发现之前shutdown掉的主节点192.168.77.145:6379变为了从节点了加入了当前集群。

 [root@dbc ~]# redis-cli -a 123456 info replication
 # Replication
 role:master
 connected_slaves:2
 slave0:ip=192.168.77.146,port=6379,state=online,offset=1147649,lag=0
 slave1:ip=192.168.77.145,port=6379,state=online,offset=1147792,lag=0
 master_failover_state:no-failover
 master_replid:c556a04bd19dfc7627743569c9f2613dc8a7232b
 master_replid2:ce16d352e923b9c77de6dd925f289dcd27e590ca
 master_repl_offset:1147958
 second_repl_offset:1090349
 repl_backlog_active:1
 repl_backlog_size:1048576
 repl_backlog_first_byte_offset:1051856
 repl_backlog_histlen:96103
  • 分享:
评论
还没有评论
    发表评论 说点什么