> 文章列表 > redis哨兵模式配置(配置文件等)

redis哨兵模式配置(配置文件等)

redis哨兵模式配置(配置文件等)

Redis-Sentinel机制主要用三个功能:

(1)监控:不停监控Redis主从节点是否安装预期运行

(2)提醒:如果Redis运行出现问题可以 按照配置文件中的配置项 通知客户端或者集群管理员

(3)自动故障转移:当主节点下线之后,哨兵可以从主节点的多个从节点中选出一个为主节点,并更新配置文件和其他从节点的主节点信息。

三台机器:

192.168.133.131 slaveof
192.168.133.129 master
192.168.133.131 slaveof

关闭三台机器的防火墙

暂时关闭防火墙

systemctl stop firewalld

service  iptables stop

永久关闭防火墙

systemctl disable firewalld

chkconfig iptables off

重启防火墙

systemctl enable firewalld

service iptables restart  

永久关闭后重启 chkconfig iptables on(暂时没有试过)

附redis配置文件连接

附sentinel配置文件连接

三台机器的redis.conf(主要是这几项):

bind 0.0.0.0注释掉,

requirepass 123456 (三台机器的密码必须相同)
# 主从配置,slave 访问 master 需要密码,三台机器必须都配置才能使用哨兵自动切换
masterauth 123456

192.168.133.129:主节点配置文件

#注释掉bind
#bind 0.0.0.0
# 如果为 yes 只能通过(127.0.0.1)访问
protected-mode no
# 用守护线程的方式启动(也就是后台启动)
daemonize yes
# pid 文件(建议放在redis启动目录)
pidfile "/var/run/redis_6379.pid"
# 日志,表示命令页面输出
logfile ""
# 数据库数量
databases 16
# 开启 rdb 并设置备份规则
save 900 1 
save 300 10
save 60 10000 
rdb持久化文件名称
dbfilename "dump.rdb"
# rdb 以及 aof 备份文件
dir "/usr/local/bin"
# rbd 文件名
dbfilename dump.rdb
# 密码(三台机器的密码必须相同)
requirepass 12345
# 主从配置,slave 访问 master 需要密码,三台机器必须都配置才能使用哨兵自动切换
masterauth 12345
# Sentinel 模块的配置,从Redis 5.0版本开始,slaveof配置选项被重命名为replicaof。
slave-priority 100

从节点的配置文件:

相比主节点,2个从节点的配置文件多了: replicaof 10.211.55.8 6379(因为我用的是5.0版本所以这里使用replicaof,如果是5.0版本以下,则要使用slaveof)

在redis中,默认从节点默认是只读,不可以写

下图是加在最后一行

sentinel.conf配置文件:

protected-mode no
#守护进程运行
daemonize yes
# sentinel 端口
port 26379
dir "/usr/local/bin/config"
# 注意,三个配置文件一样,检测同一个主节点
# 哨兵sentinel监控的redis主节点的 ip port 
# master-name  可以自己命名的主节点名字 只能由字母A-z、数字0-9 、这三个字符".-_"组成。
# quorum 当这些quorum个数sentinel哨兵认为master主节点失联 那么这时 客观上认为主节点失联了
# sentinel monitor <master-name> <ip> <redis-port> <quorum>
sentinel monitor mymaster 192.168.133.129 6379 1
# 当在Redis实例中开启了requirepass foobared 授权密码 这样所有连接Redis实例的客户端都要提供密码
# 设置哨兵sentinel 连接主从的密码 注意必须为主从设置一样的验证密码
# sentinel auth-pass <master-name> <password>
sentinel auth-pass mymaster 12345 
# 指定多少毫秒之后 主节点没有应答哨兵sentinel 此时 哨兵主观上认为主节点下线 默认30秒
# sentinel down-after-milliseconds <master-name> <milliseconds>
sentinel down-after-milliseconds mymaster 30000
# 这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行 同步,
#这个数字越小,完成failover所需的时间就越长,
#但是如果这个数字越大,就意味着越 多的slave因为replication而不可用。
#可以通过将这个值设为 1 来保证每次只有一个slave 处于不能处理命令请求的状态。
sentinel parallel-syncs mymaster 1
# 故障转移的超时时间 failover-timeout 可以用在以下这些方面: 
#1. 同一个sentinel对同一个master两次failover之间的间隔时间。
#2. 当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的master那里同步数据时。
#3.当想要取消一个正在进行的failover所需要的时间。  
#4.当进行failover时,配置所有slaves指向新的master所需的最大时间。不过,即使过了这个超时,slaves#依然会被正确配置为指向master,但是就不按parallel-syncs所配置的规则来了
# 默认三分钟
# sentinel failover-timeout <master-name> <milliseconds>
sentinel failover-timeout mymaster 180000
#由于当前sentinel守护进程运行的,所以具体的日志内容我们设置在当前目录下的sentinel.log中查看
#这个日志打开切换时要重新进来才能看到下一步的日志内容(哈哈,我第一次打开一直切换后没退出一直在等)
logfile ./sentinel.log

redis启动相关命令

redis启动命令 redis-server redis.conf
sentinel启动命令 redis-sentinel sentinel.conf
进入redis客户端命令 redis-cli -h host -p port
redis进入客户端操作需要密码 auth 12345(12345为密码)
redis服务关闭命令

分为两种情况:未设置密码:reids-cli shhudown

设置密码:上面关闭的命令无效,需要加上密码:

redis-cli -a [password],回车后输入:shutdown

即可关闭redis,输入exit 退出。

redis关闭相关命令关断(最常用) 使用ps -ef|grep redis 可以查看redis的项目服务内容,其中包括哨兵等等,获取相关服务pid,使用kill -9 pid 快速关闭相关服务

切换后setinel日志内容(建议使用tac查看哈)