Redis主从复制-哨兵模式

Categories:

由于单个redis服务器在发生故障的时候,会造成项目整体瘫痪,并且单服务器需要处理所有请求压力较大,所以需要多个redis服务器,并搭建主从关系。
Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器。


主从复制

images注:一个主库(Master)可以拥有多个从库(Slave),一个从库只能隶属于一个主库

配置

主库不配任何配置

从库做如下配置

imagesslaveof 主库ip 主库端口

masterauth 主库密码

requirepass 从库密码(文档尾部)

通过redis.conf依次启动redis

注:主库可以写入、读出,从库只能读出

查看节点情况

info replication

哨兵模式

简介

主从复制中如果主库故障,而从库无法写入,同样会造成项目无法使用,所以需要使用哨兵(sentinel)来检测redis状态,并在主库发生故障时,在从库中挑选一个提升为主库,并且自动修改配置,使其他从库同时更改隶属主库

哨兵也可以有多个,并且多个哨兵之间也会互相检测,以保证其中有哨兵宕机时,可以继续监控
images

配置

复制配置文件

cp /usr/local/software/redis-3.2.11/sentinel.conf 主/从库的bin目录下

修改

images多个哨兵端口不能重复

images

master地址 端口 最低通过票数

images有多少个节点

images

master密码

开启

./redis-server sentinel.conf --sentinel