Centos7 安装 redis 集群哨兵模式

一、整体哨兵模式规划

redis 节点规划:6379(master), 6380(slave), 6381(slave), 6382(slave)
sentinel 模式节点规划:26379, 26380

二、Redis 主从安装步骤

1.单机版 Redis 安装

2.在 /usr/local/ 目录下创建 redis-sentinel 文件夹
cd /usr/local
mkdir redis-sentinel

3.进入 /usr/local/redis-sentinel 目录下,创建文件夹 master-6379, slave-6380, slave-6381, slave-6382, sentinel-26379, sentinel-26380
mkdir master-6379 slave-6380 slave-6381 slave-6382 sentinel-26379 sentinel-26380

4.把单机版安装目录下 redis.conf 拷贝到目录下 master-6379 slave-6380 slave-6381 slave-6382
cp /usr/local/redis-4.0.6/redis.conf /usr/local/redis-sentinel/master-6379
cp /usr/local/redis-4.0.6/redis.conf /usr/local/redis-sentinel/slave-6380
cp /usr/local/redis-4.0.6/redis.conf /usr/local/redis-sentinel/slave-6381
cp /usr/local/redis-4.0.6/redis.conf /usr/local/redis-sentinel/slave-6382

5.把单机版安装目录下 sentinel.conf 拷贝到 sentinel-26379, sentinel-26380
cp /usr/local/redis-4.0.6/sentinel.conf /usr/local/redis-sentinel/sentinel-26379
cp /usr/local/redis-4.0.6/sentinel.conf /usr/local/redis-sentinel/sentinel-26380

6.修改 /usr/local/redis-sentinel/master-6379/ 目录下 redis.conf 配置文件(主服务器)
bind 127.0.0.1 --修改称自己的IP地址
port 6379 --主服务器的端口号
daemonize yes --后台启动
pidfile /var/run/redis_6379.pid --redis 后台启动的时候,会在 /var/run/ 默认生成一个 pid 文件
protected-mode no --保护模式关闭,否则启动哨兵的时候,无法正常运行(还可以设置密码的方式)
dir /usr/local/redis-sentinel/master-6379/data --数据保存目录

7.修改 /usr/local/redis-sentinel/slave-6380/ 目录下 redis.conf 配置文件(从服务器)
bind 127.0.0.1 --修改称自己的IP地址
port 6380 --主服务器的端口号
daemonize yes --后台启动
pidfile /var/run/redis_6380.pid --redis 后台启动的时候,会在 /var/run/ 默认生成一个 pid 文件
protected-mode no --保护模式关闭,否则启动哨兵的时候,无法正常运行(还可以设置密码的方式)
dir /usr/local/redis-sentinel/slave-6380/data --数据保存目录
slaveof 127.0.0.1 6380 --主服务器的 IP 主服务器端口号

8.其他从服务器类似步骤 7

9.此时启动会报错,因为需要在相应的位置创建 data 文件夹

10.步骤 9 执行完后,就可以正常运行了
一步一步的启动
/usr/local/redsi-4.0.6/bin/redis-server /usr/local/redis-sentienl/master-6379/redis.conf
/usr/local/redsi-4.0.6/bin/redis-server /usr/local/redis-sentienl/slave-6380/redis.conf
/usr/local/redsi-4.0.6/bin/redis-server /usr/local/redis-sentienl/slave-6381/redis.conf
/usr/local/redsi-4.0.6/bin/redis-server /usr/local/redis-sentienl/slave-6382/redis.conf

启动完成后,连接主服务器客户端,查看主服务器信息 info
/usr/local/redis-4.0.6/bin/redis-cli -h 127.0.0.1 -p 6379

11.在主服务器节点上添加一个值,看看是否能同步到从服务器上去
/usr/local/redis-4.0.6/bin/redis-cli -h 127.0.0.1 -p 6379
set test smart
get test
quit
/usr/local/redis-4.0.6/bin/redis-cli -h 127.0.0.1 -p 6380
get test
quit
/usr/local/redis-4.0.6/bin/redis-cli -h 127.0.0.1 -p 6381
get test
quit
/usr/local/redis-4.0.6/bin/redis-cli -h 127.0.0.1 -p 6382
get test
quit

三、在二完成的基础上添加哨兵监控主节点

1.修改 /usr/local/redis-sentinel/sentinel-26379 目录下的 sentinel.conf
port 26379 – 指定sentinel端口号
daemonize yes – 指定sentinel为后台启动
protected-mode no --关闭保护模式
sentinel monitor mymaster [主服务器节点IP] [主服务器节点port] [几个哨兵检测到主节点失联数量] – 至少有几个哨兵检测到主服务器故障了,才进行故障迁移 ,实例 sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 30000–指定Sentinel判定Master断线的时间
logfile /usr/local/redis-sentinel/sentinel-26379/sentinel-26379.log
dir /usr/local/redis-sentinel/sentinel-26379/data
(如果有的找不到找个空白地方加上去)

2.修改 /usr/local/redis-sentinel/sentinel-26380 目录下的sentinel.conf
port 26380 – 指定sentinel端口号
daemonize yes – 指定sentinel为后台启动
protected-mode no --关闭保护模式
sentinel monitor mymaster [主服务器节点IP] [主服务器节点port] [几个哨兵检测到主节点失联数量] – 至少有几个哨兵检测到主服务器故障了,才进行故障迁移 ,实例 sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 30000–指定Sentinel判定Master断线的时间
logfile /usr/local/redis-sentinel/sentinel-26380/sentinel-26380.log
dir /usr/local/redis-sentinel/sentinel-26380/data
(如果有的找不到找个空白地方加上去)

3.启动哨兵,并查看哨兵日志
/usr/local/redis-4.0.6/src/redis-sentinel /usr/local/redis-sentinel/sentinel-26379/sentinel.conf
/usr/local/redis-4.0.6/src/redis-sentinel /usr/local/redis-sentinel/sentinel-26380/sentinel.conf
/usr/local/redis-sentinel/sentinel-26379/sentinel-26379.log
/usr/local/redis-sentinel/sentinel-26380/sentinel-26380.log

4.直接把 master 节点进程 kill 掉,再次观看哨兵日志
在杀掉主节点进程的时候,没有发生主从切换,并且日志打印如下,解决方法时在 sentinel.conf 配置文件中添加 protected-mode no (这个的前提是 redis.conf 文件的配置也是 protected-mode no )

5.解决 4 的问题后,重新启动 sentinel,杀掉主节点进程和查看 sentinel 日志
(1)主节点从 6379 变成 6380
有如下句子证明切换成功了
+switch-master mymaster 127.0.0.1 6379 127.0.0.1 6380
(2)把节点 6380 的进程杀掉,主节点变成 6381 了
有如下句子证明切换成功了
+switch-master mymaster 127.0.0.1 6380 127.0.0.1 6381
(切换服务器是随机的)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值