redis 哨兵模式配置

redis 哨兵的安装

一、配置主从

下载源码:
wget http://download.redis.io/releases/redis-4.0.11.tar.gz
解压和安装
tar -xf redis-4.0.11.tar.gz -C /usr/local/
cd /usr/local/
ln -s redis-4.0.11/ redis
cd /usr/local/redis
make MALLOC=libc && make && make install
配置主从: 1主192.168.203.100 2从配置好 192.168.203.101 192.168.203.102
主配置文件:
bind 192.168.203.100 127.0.0.1 #不想监听0.0.0.0 且,又希望监听127.0.0.1和本机ip
protected-mode no #无保护模式,如果不打算设置密码,且使用主从,这个地方一定要设置no
daemonize yes #配置后台启动
logfile "./redis.log" #配置redis运行的日志路径
pidfile "/var/run/redis_6379.pid" # 默认无需更改

192.168.203.101这个从节点配置文件:
bind 192.168.203.101 127.0.0.1 #不想监听0.0.0.0 且,又希望监听127.0.0.1和本机ip
protected-mode no #无保护模式,如果不打算设置密码,且使用主从,这个地方一定要设置no
daemonize yes #配置后台启动
logfile "./redis.log" #配置redis运行的日志路径
pidfile "/var/run/redis_6379.pid" # 默认无需更改
slaveof 192.168.203.100 6379

启动
/usr/local/redis/src/redis-server /usr/local/redis/redis.conf
关闭
redis-cli shutdown
检查:
netstat -tulnp |grep 6379

配置slave:
slaveof 192.168.203.100 6379

验证主从正常
redis-cli info replication
其中 master_link_status:up 正常,且主从数据测试能够同步

二、配置哨兵(三台机器配置完全一样)

bind 0.0.0.0
protected-mode no #默认为no
sentinel monitor mymaster 192.168.203.100 6379 2
dir "/tmp" #默认即可, sentinel的chroot目录
logfile "./sentinel.log" #需要添加这行配置,否则看不到sentinel的日志
sentinel down-after-milliseconds mymaster 5000
daemonize yes #后台启动

启动哨兵
/usr/local/redis/src/redis-sentinel /usr/local/redis/sentinel.conf
检查哨兵状态
redis-cli -p 26379 INFO Sentinel
关闭哨兵
redis-cli -p 26379 shutdown
查看哨兵日志
tail -f /tmp/sentinel.log

在哨兵模式下,这两个文件会被自动控制,并且自动修改的。
redis.conf sentinel.conf

三、如果需要添加认证

添加认证
redis.conf添加的配置
masterauth "123456"
requirepass "123456"
protected-mode yes #当然此时设置了为no,测试也没有影响,需要密码

sentinel.conf 配置文件修改

注意: 一定要搞清楚masterauth 和 requirepass 区别
https://www.cnblogs.com/hexiaohui003/p/10885928.html

四、验证master 被kill掉后,master会被切换

1 查看日志:tail -f /tmp/sentinel.log
2 查看状态: redis-cli -p 26379 INFO Sentinel

五、问题:

  1. master kill掉以后,一直不切换
    2259:X 02 Sep 01:29:47.537 # +elected-leader master mymaster 192.168.203.100 6379
    2259:X 02 Sep 01:29:47.537 # +failover-state-select-slave master mymaster 192.168.203.100 6379
    2259:X 02 Sep 01:29:47.628 # -failover-abort-no-good-slave master mymaster 192.168.203.100 6379
    2259:X 02 Sep 01:29:47.712 # Next failover delay: I will not start a failover before Mon Sep 2 01:35:47 2019

原因:
slave 没有良好的,原因,是bind没有监听本机端口,只监听了127.0.0.1 。 这是属于master-slave阶段就错误了

  1. 认证报错
    主从同步报错:
    7710:S 02 Sep 04:15:09.247 # Unable to AUTH to MASTER: -ERR Client sent AUTH, but no password is set

requirepass 在redis.conf中忘了加,requirepass 和 masterauth 需要配套使用

  1. 启动报错:
    FATAL CONFIG FILE ERROR
    Reading the configuration file, at line 72

    'sentinel auth-pass mymaster "123456"'
    No such master with specified name.

原因:
sentinel monitor mymaster 这行配置应该在sentinel.conf配置文件中其他sentinel的配置的前面。

相关资源:redis哨兵模式
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页