Redis哨兵模式(Sentinel)是Redis的高可用性的解决方案:由一个或者多个Sentinel实例(instance)组成的Sentinel系统可以监视任意多个主服务器,以及这些服务器下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由主服务器代替已下线的主服务器继续处理命令请求。
一. Redis 安装
1.通过ssh连接到linux服务器
2.安装Redis到 /data/redis
- mkdir /data/redis //创建redis文件夹
- cd /data/redis //进入文件夹
- wget http://download.redis.io/releases/redis-4.0.9.tar.gz //下载文件 我这里选择是4.0.9版本
- tar xzf redis-4.0.9.tar.gz //解压
- cd redis-4.0.9 //进入目录
- make //编译
二.Redis sentinel配置
Redis主从配置,配置master 只能为写,slave只能为读,从而实现读写分离,在客户端对poolconnect请求时候,,会将读请求转到slave上面,写请求转到master上面,同时,master和slave有同步功能,这就实现了(数据层)读写分离对上层(逻辑层)透明的正常逻辑。无需再通过中间件或者代码进行读写分析实现。
1.复制Redis目录
- mkdir /data/redis/master //创建主服务目录
- mkdir /data/redis/slave1 //创建从服务1目录
- mkdir /data/redis/slave2 //创建从服务2目录
- cp -r /data/redis/redis-4.0.9 /data/redis/master
- cp -r /data/redis/redis-4.0.9 /data/redis/slave1
- cp -r /data/redis/redis-4.0.9 /data/redis/slave2
2.修改master配置
- cd /data/redis/master
- vi redis.conf //编辑配置
master中 redis.conf具体配置如下:
#———–auth———–
requirepass “root123”
masterauth “root123”
daemonize yes
#———–dir———–
dir “/data/redis/master”
pidfile “/data/redis/master/redis.pid”
loglevel notice
logfile “/data/redis/master/6379.log”
dir “/data/redis/master”
databases 16
port 6379
tcp-backlog 511
timeout 0
#———–sync———–
save 3600 1
save 1800 1000
save 900 10000
3.修改slave1(slave2)中redis.conf配置
- cd /data/redis/slave1
- vi redis.conf //编辑配置
slave1中 redis.conf具体配置如下:
#———–auth———–
requirepass “root123”
masterauth “root123”
daemonize yes
//服务器转变为指定服务器的从属服务器 如果是在别的主机上安装这里的IP改为主服务器所属机器IP,这里暂写127.0.0.1
slaveof 127.0.0.1 6379
#———–dir———–
dir “/data/redis/slave1”
pidfile “/data/redis/slave1/redis.pid”
loglevel notice
logfile “/data/redis/slave1/6380.log”
dir “/data/redis/slave1”
databases 16
port 6380
tcp-backlog 511
timeout 0
#———–sync———–
save 3600 1
save 1800 1000
save 900 10000
4.修改slave1(slave2)中sentinel.conf配置
- cd /data/redis/slave1
- vi sentinel.conf //编辑配置
slave1中 sentinel.conf 具体配置如下:
port 26379
daemonize yes
logfile “/data/redis/slave1/sentinel.log”
protected-mode no
sentinel auth-pass mymaster root123
//这里配置写上主服务器IP 端口 2个sentinel选举成功后才有效
sentinel monitor mymaster 127.0.0.1 6379 2
三.启动redis sentinel 服务
cd /data/redis/master //进入主服务器目录
redis-server redis.conf //启动主服务
cd ../slave1/ //进入从1服务
redis-server redis.conf //启动从服务
redis-server sentinel.conf –sentinel //启动从1哨兵
cd ../slave2/ //进入从2服务
redis-server redis.conf //启动从服务
redis-server sentinel.conf –sentinel //启动从2哨兵
参考:
https://blog.csdn.net/qq_18427977/article/details/80930937