Redis哨兵模式
哨兵模式:给集群分配一个站岗的。
哨兵作用就是对Redis系统的运行情况监控,他是一个独立进程,他的功能:
- 监控主数据库和从数据库是否运行正常;
- 主数据出现故障后自动将从数据库转化为主数据库;
如果主机宕,开启选举工作,选择一个从做主机。
环境准备:一主两从,启动任一从机时,启动哨兵模式
虽然哨兵(sentinel) 释出为一个单独的可执行文件 redis-sentinel ,但实际上它只是一个运行在特殊模式下的 Redis 服务器,你可以在启动一个普通 Redis 服务器时通过给定 --sentinel 选项来启动哨兵(sentinel)。
第一步:配置哨兵:
哨兵主要是用来监听主服务器的,所以一般把哨兵部署在从服务器上监听
配置哨兵
- 启动哨兵进程,首先需要创建哨兵配置文件 vi sentinel.conf,可从源码配置redis-5.0.5/sentinel.conf中复制的内容,也可以直接自定义该文件到bin目录下
- 在配置中输入:sentinel monitor mastername 内网IP(127.0.0.1) 6379 1
- 说明:
- mastername 监控主数据的名称,自定义
- 127.0.0.1:监控主数据库的IP;
- 6379:端口
第二步:启动哨兵
哨兵是一个单独的进程,启动之前确保主从服务是正常的。先启动主服务,后启动从服务
把日志写入指定的文件
[root@localhost bin]# ./redis-sentinel ./sentinel.conf >sent.log &
[1] 3373
启动redis服务后,程序会自动配置文件sentinel.conf,并生成内容,注意:若再起启动需要删除下生成的内容。 哨兵启动方式:
[root@localhost bin]# ./redis-server sentinel.conf --sentinel
哨兵进程控制台:为master数据库添加了一个监控.
同时多了哨兵进程:
查询配置文件sentinel.conf中生成的内容:
启动哨兵的时候,修改了哨兵的配置文件。如果需要再次启动哨兵,需要删除myid唯一标示。 (保险的做法就是启动的一次,新配置一次)
第三步:主机宕机
机房意外:断电了。硬件故障:硬盘坏了
列表:
杀死主机:kill -9 pid
[root@localhost redis6380]# kill -9 2910
哨兵控制台:从库自动提升为主库。
哨兵工作,连接之前的从机确认:
127.0.0.1:6381> info replication
# Replication
role:slave
master_host:192.168.197.129
master_port:6379
哨兵替代运维。自动监控完成。
同时也会自动修改redis.conf的主从配置文件。
replicaof 127.0.0.1 6380
指向了新主机。再次启动原有的主机,原有的主机会变为从机。
总结:
主从集群:主机有写入权限。从机没有,只有可读。
意外宕机方案:
手动恢复:人为重启服务器,主机宕,把从机设置为主机。
自动恢复:使用哨兵监控。自动切换主从