redis哨兵机制的概述:
1、哨兵机制作用:
通过哨兵机制实现redis分片的高可用,即在redis的分片中当有一台节点宕机时,不会对整个redis分片的造成影响,从而实现分片的机制的高可用。
2、哨兵机制的原理:
将多台实现主从结构的redis当做整体:
主机:即可读又可写同时会将数据同步到从机中
从机:平时的话可以当作备机使用,只接收主机同步的数据,而不接受其它的写操作,但可以接受客户端的读操作。
当主机宕机时,哨兵机制会从从机中选取一台当作主机使用,从而保证整个系统不会因为主机宕机而造成访问失败,实现redis高可用。
3、适用时机:
主要针对多台redis构成的实现主从配置或者集群里使用。
二、哨兵机制的实现
1、准备工作
先在我们服务器中的redis的安装目录下创建一个文件夹:使用的指令如下
# 这个是创建文件夹的指令
mkdir sentinel
就可以看到文件夹:
2、主从搭建
(1)这里 我们在新创建好的sentinel中创建五个文件:6379.conf、6380.conf、6381.conf、还有两个脚本文件:start01.sh、shudown.sh
(2)然后将redis.conf文件中的内容复制到新创建好的文件中去:
(3)在6379.conf文件中修改内容:(下面的行数可能会有所偏差,大家可以直接ctrl+f 进行关键字搜索)(下面的图片是以6379.conf为例,剩下的两个文件也是进行同样的修改)
将bind 127.0.0.1 取消注释:
将保护模式取消掉:
将端口号设置为你文件名所对应的端口号:下面是以6379为例,剩下的两个6380和6381也是同样的方式
(4)写脚本文件:
start01.sh:
#!/bin/sh
redis-server 6379.conf &
redis-server 6380.conf &
redis-server 6381.conf &
shudown.sh:
#!/bin/sh
redis-cli -p 6379 shutdown &
redis-cli -p 6380 shutdown &
redis-cli -p 6381 shutdown &
(5)进入指定的从机中,执行主从挂载命令:(下面的图片是:进入6379端口的redis,并将其挂载到6380端口中的redis)(6381端口的挂载和下面的步骤一致,唯一不同的就是进入的是6381的客户端)
# 下面这个是启动reids客户端
redis-cli -p 6380
# -p 6380:是开启哪个端口的redis服务,这里开启的是6380端口
# 下面的是挂载命令
slaveof xx.xx.xxx.xxx 6379
# !!!需要在从机客户端,执行主从挂载命令
# 方法的作用是将改端口的redis作为从机挂载到6379端口的redis
到这里,挂载的流程就结束了。
3、哨兵机制
(1)修改redis文件中的sentinel.conf:
{ 注意下图中的投票的次数:因为我们的案例没有加入集群,所以目前只有一个哨兵,只需要投一票就能决定结果 }
(投票的次数为:哨兵的个数一半再加一)
(2)启动哨兵-->启动哨兵的前提是先启动三个不同端口的reids:
启动哨兵的指令:
redis-sentinel sentinel.conf
然后进入哨兵机制的客户端,并查看哨兵信息:
# 进入哨兵机制的客户端
redis-cli -p 26379
# 查看哨兵信息
info sentinel