一、环境准备

分别准备三台服务器,IP分别为172.17.2.100,172.17.2.101,172.17.2.102操作系统选择的是Centos7.4,redis版本采用的是redis-3.2.11。

二、安装redis服务。

1、安装redis服务,全部服务器同样操作,已172.17.2.100为例

yum -y install gcc make automake pkgconfig               ##安装源码变异的依赖包
tar -xf redis-3.2.11.tar.gz                           ##解压tar包
cd redis-3.2.11/                                        ##进入tar包目录
make MALLOC=libc                               ##源码编译,设定类库
useradd -s /sbin/nologin -d /var/lib/redis redis      ##创建进程运行的账户,并制定家目录
make install PREFIX=/usr/local/redis             ##安装,并制定安装路径
mkdir /usr/local/redis/conf                      ##创建配置文件的目录

centos后台启动redis命令 centos搭建redis_sentinel

源码包里面是包含了redis的配置文件和哨兵的配置文件的

cp *.conf /usr/local/redis/conf/                          ##把配置文件拷贝到配置文件目录下

centos后台启动redis命令 centos搭建redis_redis_02

需要修改的内容是这5项,分别是坚挺的地址,是否关闭保护模块(不关闭,就是单机),端口,是否打开守护进程,工作目录

vim /usr/local/redis/conf/redis.conf

centos后台启动redis命令 centos搭建redis_sentinel_03

启动redis

/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf

ln -s /usr/local/redis/bin/redis-cli /usr/sbin/         ##创建个链接程序的链接

centos后台启动redis命令 centos搭建redis_centos后台启动redis命令_04

redis启动成功。默认role是master

三、部署redis集群,一主二从的架构,100为主,101和102为从

centos后台启动redis命令 centos搭建redis_Nosql_05

简单2条命令,就设置好主从关系了。从100的redis上查询到同步信息。

四、配置哨兵配置文件

centos后台启动redis命令 centos搭建redis_sentinel_06

这五项,分别是哨兵的端口,工作目录,主库信息,主库宕机计算时间,超时时间

我们设置成以下(新增几项)

centos后台启动redis命令 centos搭建redis_Nosql_07

文件的最后还有这么一个配置,是切换脚本的路径。

centos后台启动redis命令 centos搭建redis_centos后台启动redis命令_08

打开注释,启动它

然后把哨兵配置文件同步给其他机器

接下来我们要创建切换脚本了。路径就按照文件写的

mkdir /var/redis

vim /var/redis/reconfig.sh

centos后台启动redis命令 centos搭建redis_redis_09

给予执行的权限,把脚本同步给其他机器

全部机器启动哨兵

/usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/sentinel.conf

centos后台启动redis命令 centos搭建redis_redis_10

链接进去哨兵,查看监听状态

centos后台启动redis命令 centos搭建redis_redis_11

状态正常,master是100,从有2个,哨兵有3个。

五、绑定VIP,尝试VIP登录master。然后模拟master故障,看看VIP是否正常切换

centos后台启动redis命令 centos搭建redis_sentinel_12

centos后台启动redis命令 centos搭建redis_sentinel_13

VIP正常使用

接下来模拟master的redis故障。

centos后台启动redis命令 centos搭建redis_高可用_14

目前master的redis已经关闭了。我们检查一下,VIP在哪?master又是谁了?

centos后台启动redis命令 centos搭建redis_sentinel_15

VIP已经到了102了、我们在看看,master是谁了?

centos后台启动redis命令 centos搭建redis_sentinel_16

102,变成了master了。完美解决redis的高可通。