REDIS部署有三种模式。
单实例模式,一般用于测试环境。
哨兵模式
集群模式
后两者用于生产部署,下面说明一下 哨兵模式 redis的安装部署模式。
哨兵模式
哨兵模式是一种自动切换master的模式,即在master宕机之后,哨兵模式会根据哨兵们的内部投票,自动的从slave节点中重新选出一个新的master老大。
哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。
其原理是哨兵通过发送命令,等待Redis服务器响应,如果Redis服务器一直没有响应,说明这个Redis服务器可能已经宕机了,从而监控运行的多个Redis实例。
REDIS 一主二从三哨兵
配置方法如下,在同一台机器上部署,生产环境使用3台服务器
IP地址配置如下
主 127.0.0.1 6001
从 127.0.0.1 6002
从 127.0.0.1 6003
哨兵
127.0.0.1 16001
127.0.0.1 16002
127.0.0.1 16002
修改配置文件
将redis.conf 复制为 redis1.conf,redis2.conf,redis3.conf
配置修改为:
//redis1.conf
bind 192.168.1.10
protected-mode no
daemonize yes
port 6001
pidfile "/var/run/redis_6001.pid"
//redis1.conf
bind 192.168.1.10
protected-mode no
daemonize yes
port 6002
pidfile "/var/run/redis_6002.pid"
//redis3.conf
bind 192.168.1.10
protected-mode no
daemonize yes
port 6003
pidfile "/var/run/redis_6003.pid"
配置哨兵
port 16001
daemonize yes
sentinel monitor mymaster 192.168.1.10 6001 2
port 16002
daemonize yes
sentinel monitor mymaster 192.168.1.10 6001 2
port 16003
daemonize yes
sentinel monitor mymaster 192.168.1.10 6001 2
程序中配置 redis 支持 哨兵模式
在nacos 中配置
spring.redis.database=1
spring.redis.password=
spring.redis.sentinel.master=mymaster
//将redis 的哨兵都配置到这里
spring.redis.sentinel.nodes=192.168.1.10:16001,192.168.1.10:16002,192.168.1.10:16003
spring.redis.lettuce.pool.max-idle= 10
spring.redis.lettuce.pool.max-active= 20
spring.redis.lettuce.pool.min-idle= 5
spring.redis.lettuce.pool.max-wait= 10000ms