Redis 哨兵机制与实现

291 阅读2分钟

Redis 哨兵机制 (Sentinel)

在Redis主从复制中, 由于我们的Redis Master节点宕机之后, 从节点Slave无法自动的变为主节点, 从而无法为用户提供写的请求, 只能进行读. 为了解决这个问题, 我们引入了Redis 哨兵机制. 通过哨兵哨兵机制, 哨兵会监控所有节点, 当主节点宕机之后, 哨兵就会让其中的一个从节点来代替主节点, 接手它的写操作, 从而成为一个新的主从模式. 在这里插入图片描述

1. 配置Redis 哨兵机制

  1. 进入 Redis 安装目录 cd /home/software/redis-5.0.5 sentinel.conf 就是我们哨兵机制的核心配置文件. 在这里插入图片描述
  2. 将sentinel核心配置文件拷贝到我们的/usr/local/redis 下 cp sentinel.conf /usr/local/redis 在这里插入图片描述
  3. vim sentinel.conf 编辑我们的哨兵核心配置文件 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

具体配置信息如下:

# Base
protected-mode no
port 26379
daemonize yes
pidfile /var/run/redis-sentinel.pid
logfile /usr/local/redis/sentinel/redis-sentinel.log
dir /usr/local/redis/sentinel

# Core
sentinel monitor beyond-master 192.168.92.132 6379 2
sentinel auth-pass beyond-master xxxxxx(密码)
sentinel down-after-milliseconds beyond-master 10000
sentinel parallel-syncs beyond-master 1
sentinel failover-timeout beyond-master 180000

2. 由于是哨兵集群, 所以3台redis节点的哨兵配置文件一模一样.

可以直接拷贝一份, 也可使用如下方式远程拷贝

PS: 将配置文件进行远程传输

scp sentinel.conf root@192.168.92.138:/usr/local/redis scp sentinel.conf root@192.168.92.139:/usr/local/redis 在这里插入图片描述

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

3. 启动哨兵

redis-sentinel sentinel.conf 其中sentinel.conf是哨兵核心配置文件路径

PS: 没有文件夹及文件, 因为我们是事先定义好的目录, 我们去创建即可, 然后再次启动 mkdir /usr/local/redis/sentinel -p 在这里插入图片描述 在这里插入图片描述

ps -ef|grep redis 查看redis进程 在这里插入图片描述 tail -f redis-sentinel.log 动态查看哨兵日志文件末尾 在这里插入图片描述

4. 测试哨兵机制

  1. 开启所有的主从复制架构节点 在这里插入图片描述
  2. 关闭主节点 在这里插入图片描述
  3. 查看哨兵日志 在这里插入图片描述 在这里插入图片描述
  4. 启动原来的132master节点 在这里插入图片描述
  5. 查看哨兵日志 在这里插入图片描述 在这里插入图片描述

PS : Redis 启动命令

在这里插入图片描述