redis哨兵集群部署
一、准备工作。
服务器
|
部署应用 |
10.159.62.213 | 主节点 |
10.159.62.214 | 从节点1 |
10.159.62.215 | 从节点2 |
二、下载解压
三台机子同样的操作。
https://www.cnblogs.com/qq1445496485/p/16111053.html
三、修改redis.conf文件
mkdir -p /usr/local/redis/log # 日志文件 mkdir -p /usr/local/redis/6379 # 指定数据库存放路径
1、修改213 redis.conf配置
# 开启守护进程 daemonize yes # masterauth <master-password> masterauth 123456 # 确保有1个从节点写入,且延时不超过10s,否则主节点会停止写入请求(防止数据丢失) # redis版本5之前是 min-slaves-to-write 和 min-slaves-max-lag 10 # redis版本5开始是 min-replicas-to-write 和 min-replicas-max-lag 10 min-replicas-to-write 1 min-replicas-max-lag 10 # redis密码 requirepass 123456 # 开启AOF持久化功能 appendonly yes # 设定日志文件路径 logfile "/usr/local/redis/log/redis.log"
2、修改214 215 的 redis.conf 配置
就多了一个 replicaof <masterip> <masterport> 配置
# 开启守护进程 daemonize yes # 修改IP和端口 replicaof <masterip> <masterport> replicaof 10.159.62.213 6379 # 主节点密码 masterauth <master-password> masterauth 123456 # 确保有1个从节点写入,且延时不超过10s,否则主节点会停止写入请求(防止数据丢失) # redis版本5之前是 min-slaves-to-write 和 min-slaves-max-lag 10 # redis版本5开始是 min-replicas-to-write 和 min-replicas-max-lag 10 min-replicas-to-write 1 min-replicas-max-lag 10 # redis密码 requirepass 123456 # 开启AOF持久化功能 appendonly yes # 设定日志文件路径 logfile "/usr/local/redis/log/redis.log"
四、运行三台redis,查看主从信息
Redis 和 Sentinel,启动具体顺序为:Redis(主)-> Redis(从)->Redis(从)->Sentinel(1)->Sentinel(2)->Sentinel(3)
这里先运行redis,sentinel在下面
运行命令
cd /usr/local/redis/bin/ ./redis-server redis.conf
五、修改sentinel.conf文件
三台机子修改一样
vi /usr/local/redis/bin/sentinel.conf
protected-mode no #关闭保护模式 daemonize yes #指定sentinel为后台启动 logfile "/usr/local/redis/log/sentinel.log" #指定日志存放路径 dir "/usr/local/redis/6379" #指定数据库存放路径 sentinel monitor mymaster 10.159.62.213 6379 2 #至少几个哨兵检测到主服务器故障了,才会进行故障迁移,全部指向masterIP sentinel down-after-milliseconds mymaster 30000 #判定服务器down掉的时间周期,默认30000毫秒(30秒) sentinel failover-timeout mymaster 180000 #故障转移的的最大超时时间为180000(180秒) sentinel parallel-syncs mymaster 1 #新的master切换之后,同时有几个slave被切换到去连接新master,重新做同步,数字越低,花费的时间越多 sentinel auth-pass mymaster 123456 #主节点密码
六、启动sentinel
cd /usr/local/redis/bin/ ./redis-sentinel sentinel.conf
七、查看哨兵信息
cd /usr/local/redis/bin/ ./redis-cli -h 10.159.62.213 -p 26379 info Sentinel
八、尝试在主节点上新增主键 并且在从节点上查看以及修改。
可以看见,在主节点上新增key之后,从节点是同步的。但是在从节点上不能新增、编辑、删除key。
九、故障模拟
1、把213的主节点停掉,查看sentinel.log日志。
2、首先214发现213下线,这是主观宕机(sdown);我们在sentinel.conf中设置了 sentinel monitor mymaster 10.159.62.213 6379 2 ,这里的2代表需要两个哨兵都认为主节点宕了才算是真正下线(客观宕机 odown),然后在进行选举。
接着215也发现了213下线,达到了2台,随后开始选举。
3、重新查看哨兵信息 发现现在215是主节点
cd /usr/local/redis/bin/ redis-cli -p 26379 INFO Sentinel
尝试去修改key对应的value值,发现213的机子已经不能修改了,而新的主节点 215是可以的。