redis哨兵模式,自动主备切换,springBoot配置连接
步骤(4个redis实例,为例)
- 安装redis
- 把4个redis实例,配置成一主三从
- 启动4台redis
- 启动redis-sentinel(redis自带的哨兵,健康检测,自动主备切换)
- 修改springBoot配置
安装redis(服务器有外网)
# cd进入安装目录,现在redis包
wget http://download.redis.io/releases/redis-5.0.6.tar.gz
# 解压
tar xzvf redis-5.0.6.tar.gz
# cd redis-5.0.6 进入解压后的目录
cd redis-5.0.6
# make
make
# 进入src目录 安装 【PREFIX=/sms/redis】为安装目录
cd src
make install PREFIX=/sms/redis
# 将redis.conf和sentinel.conf文件 cp到 【PREFIX=/sms/redis/bin】目录
cp redis.conf /sms/redis/bin
cp sentinel.conf /sms/redis/bin
# 在 /sms/redis/bin目录下创建log目录(存放redis的日志,redis-sentinel的日志)
mkdir /sms/redis/bin/log# 修改redis的配置文件(后台启动、设置密码、允许其他机器连接、主从配置)
# 后台启动
将daemonize no 改成daemonize yes
# 找到 requirepass foobared 放开注释 修改密码
requirepass 123456
# 允许其他机器连接 注释【bind 127.0.0.1】
1. # bind 127.0.0.1
2. 把 【protected-mode yes】改为 【protected-mode no】
#指定master主服务器(四个redis实例选一个作为主),注意:有关slaveof的配置只是配置从服务器,而主服务器不需要配置
slaveof 192.168.11.128 6379
#redis密码 主从都需要配置 因为主挂了后 重启后变为从 则需要master的auth
masterauth 123456
# 配置日志目录
logfile '/sms/redis/log/redis.log'# 启动redis redis-server和redis.conf同一个文件夹 进入 /sms/redis/bin目录
./redis-server redis.conf
配置redis哨兵
redis-sentinel可以启动四个实例,也可以启动多个(可以防止redis-sentinel挂掉导致redis不可用)
redis-sentinel(健康检测和主备切换流程,默认端口26379)
- 启动四个redis哨兵,每个哨兵会检测每个redis实例
- 当检测到master实例不可用,redis哨兵会自动选举一个slave节点作为新的master
- springBoot项目连接redis时,只需配置redis-sentinel的信息即可,redis-sentinel会返回redis-master实例的信息,master挂掉后,返回新的mater信息
# 配置文件已复制到 '/sms/redis/bin' 目录中
vim sentinel.conf
#禁止保护模式
protected-mode no
#后台启动
daemonize yes
# 日志目录
logfile '/sms/redis/log/sentinel.log'
#配置监听的主服务器,这里 sentinel monitor 代表监控
#mymaster代表服务器名称,可以自定义
#192.168.11.128代表监控的主服务器
#6379代表端口
#2代表只有两个或者两个以上的哨兵认为主服务器不可用的时候,才会做故障切换操作
sentinel monitor mymaster 192.168.11.128 6379 2
#sentinel auth-pass 配置redis实例密码
#mymaster服务名称
#123456 Redis服务器密码
sentinel auth-pass mymaster 123456#启动 cd /sms/redis/bin
./redis-sentienl sentinel.conf
springBoot项目连接redis
spring:redis:database: 0password: 123456sentinel:master: mymaster# 四个redis-sentinelnodes: 192.168.1.100:26379,192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379,192.168.1.104:26379