一、环境准备
哨兵模式基于主从模式。准备三台服务器(centos7),搭建1主2从 3哨兵
172.27.160.35 (master)
172.27.160.36 (slave1)
172.27.160.37 (slave2)
二、安装redis
1、安装依赖
yum install wget gcc
2、创建redis目录,下载redis、解压、编译和安装
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar -xzvf redis-5.0.5.tar.gz
mv redis-5.0.5 redis
进入redis/src 目录下执行 make && make install
3、修改配置文件(三台服务器均要修改的地方)
vim redis.conf
## 修改1:注释如下行,表示redis可以接收任意ip的连接
# bind 127.0.0.1
## 修改2:关闭保护模式
protected-mode no
## 修改3:开启redis服务后台运行
daemonize yes
## 修改4:添加日志路径,便于排查问题
logfile "/usr/local/redis/redis.log"
## 修改5:appendonly yes
## 修改6:dir /usr/local/redis
## 修改7:appendonly yes
## 修改8:
replicaof 172.27.160.35 6379 (#master节点不需要配置这个)
masterauth 123456
requirepass 123456
cluster-node-timeout 5000
4、启动redis服务
./src/redis-server redis.conf
默认密码123456
登录命令:redis-cli -h 127.0.0.1 -p 6379 -a 123456
集群搭建完毕
三、添加哨兵并修改配置文件
三台服务器分别启动sentinel
1、修改配置文件 vim sentinel.conf
## 修改1:让sentinel服务后台运行
daemonize yes
## 修改2:增加日志文件路径
logfile "/usr/local/redis/redis-sentinel.log"
dir /usr/local/redis
## 修改3:取消注释,增加主服务信息和需要进行选举的法定个数(两台从服务器)
sentinel monitor mymaster 172.27.160.35 6379 2
sentinel auth-pass mymaster 123456
2、启动哨兵服务
./src/redis-sentinel sentinel.conf
3、测试主从复制和哨兵模式
哨兵测试:shutdown master节点,观察重新选举的过程
再恢复原来的master节点
四、springboot集成redis集群和哨兵
新建一个springboot工程,配置连接信息
增加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<!-- 排除lettuce包,使用jedis代替-->
<exclusions>
<exclusion>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
yml配置文件如下:
spring:
redis:
cluster:
nodes: 192.168.200.135:6379,192.168.200.136:6379,192.168.200.137:6379
password: 420188
timeout: 6000
database: 0
jedis:
pool:
max-active: 8
max-wait: -1
max-idle: 8
min-idle: 0
sentinel:
master: mymaster
nodes: 192.168.200.135:26379,192.168.200.136:26379,192.168.200.137:26379
使用以上配置即可连接redis哨兵。