redis详解-(11)哨兵案例

来源:互联网 发布:迅雷mac版 编辑:程序博客网 时间:2024/06/07 00:43

上一篇以说明的形式介绍了redis哨兵模式的一些内容,本篇将一步一步的动手搭建一个redis多机器多哨兵的服务。

1.准备

三台服务器(或者虚拟机),系统CentOS6.5

ip 主机名 192.168.72.133 hadoop1 192.168.72.129 hadoop2 192.168.72.135 hadoop3

2.一台服务器一个哨兵

按照如下的配置,将每台服务器上面的主从环境搭建好(如果这一步搭建有问题,可参考前几篇有关redis主从复制的博客)

ip 主机名 服务名称 端口 192.168.72.133 hadoop1 master 6379 192.168.72.133 hadoop1 slave 6380 192.168.72.133 hadoop1 slave 6381 192.168.72.133 hadoop1 slave 6382

修改sentinel.conf配置文件

vim sentinel.conf

修改如下内容

port 26379
sentinel monitor mymaster 127.0.0.1 6379 1

启动

redis-sentinel sentinel.conf
或者使用
redis-server sentinel.conf –sentinel

这里写图片描述

启动完成后sentinel.conf配置文件内容发生变化

这里写图片描述

测试哨兵切换主备

这里写图片描述

这里写图片描述

关闭redis的6379主服务

这里写图片描述

主服务关闭之后,通过投票选举6380服务被提升为主服务role:master,6381和6382为从服务。

这里写图片描述

重新启动6379服务,日志显示convert-to-slave,主服务恢复后转换为slave角色

这里写图片描述

查看6379服务,显示role:slave。

这里写图片描述

相应的刚才创建sentinel.conf文件也发生了变化,配置的6379转变为现在的主服务6380。

这里写图片描述

3.一台服务器多个哨兵

一台服务器放四个redis服务器,分别为一个主三个从。
同时这台服务器放三个sentinel哨兵。

ip 主机名 服务名称 端口 192.168.72.133 hadoop1 master 6379 192.168.72.133 hadoop1 slave 6380 192.168.72.133 hadoop1 slave 6381 192.168.72.133 hadoop1 slave 6382

配置了一个哨兵,如果该哨兵挂掉了,那么整个主从架构就回复到了原始的情况,所以我们可以配置多个哨兵,每个哨兵监控Redis信息,并且哨兵之间也会互相监控。
在原有一个哨兵26379的基础之上新增两个哨兵264379和265379。

修改sentinel.conf中的最低通过票数2,同时新增两个配置文件,端口号分别为26479和26579。

这里写图片描述

分别启动26479和26579两个哨兵。

这里写图片描述

关闭redis主服务6380,哨兵之间已经开始投票

这里写图片描述

此时6379重新回到master的角色

这里写图片描述

重新启动6380服务,让6380回到slave的角色。

4.多台服务器多个哨兵

三台服务器每台服务器放一个redis服务和一个哨兵
redis主从架构

ip 主机名 服务名称 端口 192.168.72.133 hadoop1 master 6379 192.168.72.129 hadoop2 slave 6380 192.168.72.135 hadoop3 slave 6381

哨兵架构

ip 主机名 服务名称 端口 192.168.72.133 hadoop1 sentinel 26379 192.168.72.129 hadoop2 sentinel 26380 192.168.72.135 hadoop3 sentinel 26381

本次演示三台机器的redis安装目录都为/usr/app/redis-3.2.11

cd /usr/app/redis-3.2.11

修改redis.conf和sentinel.conf两个文件。

1.配置redis.conf文件

a.hadoop1主服务redis.conf配置文件对应项改成如下内容

bind 0.0.0.0
protected-mode no
port 6379
daemonize yes
masterauth “redis”
requirepass “redis”

b.hadoop2从服务redis.conf配置文件对应项改成如下内容

bind 0.0.0.0
protected-mode no
port 6380
daemonize yes
masterauth “redis”
requirepass “redis”
slaveof 192.168.72.133 6379

c.hadoop3从服务redis.conf配置文件对应项改成如下内容

bind 0.0.0.0
protected-mode no
port 6381
daemonize yes
masterauth “redis”
requirepass “redis”
slaveof 192.168.72.133 6379

bind 0.0.0.0表示可供远程访问
daemonize yes 表示后台运行,不然在启动redis服务后,会一直停留在启动界面。
masterauth “redis”表示设置auth密码为redis,为了方便可以不配置
requirepass “redis”表示设置密码为redis,为了方便可以不配置

2.配置sentinel.conf文件

a.hadoop1哨兵配置文件sentinel.conf配置文件对应项改成如下内容

port 26379
bind 0.0.0.0
sentinel monitor mymaster 192.168.72.133 6379 2
sentinel auth-pass mymaster redis

b.hadoop2哨兵配置文件sentinel.conf配置文件对应项改成如下内容

port 26380
bind 0.0.0.0
sentinel monitor mymaster 192.168.72.133 6379 2
sentinel auth-pass mymaster redis

c.hadoop3哨兵配置文件sentinel.conf配置文件对应项改成如下内容

port 26381
bind 0.0.0.0
sentinel monitor mymaster 192.168.72.133 6379 2
sentinel auth-pass mymaster redis

如果上面没有配置masterauth requirepass 两项配置,这里的sentinel auth-pass mymaster redis也可以不用配置

3.启动redis服务
先启动主服务,再启动从服务。

redis-server redis.conf

由于上面配置了auth为redis,所以在登录客户端的时候需要验证身份,然后才能进入到客户端。

auth redis

这里写图片描述

这里写图片描述

这里写图片描述

三个服务启动正常。

4.启动哨兵

redis-sentinel sentinel.conf

这里写图片描述

三个哨兵启动正常。

5.故障演示

关闭6379主服务

这里写图片描述

屏幕显示6380变更为主服务

这里写图片描述

验证变更结果

这里写图片描述

这里写图片描述

结果显示哨兵已经对主服务进行了切换。

6.恢复原主服务
重新启动刚才挂掉的redis主服务
这里写图片描述

结果显示挂掉的主服务convert-to-slave。

这里写图片描述

这里写图片描述

查看角色显示,原有的主服务降级为从服务继续运行。

到此单机器多机器的哨兵框架搭建全部完毕。