redis集群之哨兵(sentinel)模式
哨兵模式理想状态 需要>=3个redis服务,>=3个redis哨兵,每个redis服务搭配一个哨兵.
本例以3个redis服务为例: 一开始需要1个主redis (192.168.0.2), 2个从redis服务 (192.168.0.3 , 192.168.0.4).
配置如下
本样例还开启了redis密码功能.
1个主redis配置
#配置连接当前redis服务所需的密码 requirepass "123456" #配置连接主redis服务的密码 masterauth "123456"
2个从redis配置
#配置连接当前redis服务所需的密码 requirepass "123456" #配置连接主redis服务的密码 masterauth "123456" #配置连接主redis的ip port slaveof 192.168.0.2 6379
3个哨兵sentinel.conf统一配置
#参数说明: #配置主机ip是192.168.0.2:6379,且当有2个哨兵认为这台主机无法通信时,才认为该主机挂了,作为判断条件之一 sentinel monitor mymaster 192.168.0.2 6379 2 #配置10秒内一直检测到主机无法通信时,才认为该主机挂了,作为判断条件之一 sentinel down-after-milliseconds mymaster 10000 #配置同一时间只能有1台主从机做主从同步,此时这台从机不能做其它操作 sentinel parallel-syncs mymaster 1 #主备切换时间超过180秒,即3分钟就认为切换失败,不再切换 sentinel failover-timeout mymaster 180000 #如果主机配了密码,那么这里也添加密码,注意如果主机没有密码,这里也不能配密码,不然会报错 sentinel auth-pass mymaster "123456"
注意 sentinel 默认端口26379
启动
先按序启动主redis服务,2个从redis服务.
cd /data/redis-3.0.6
./bin/redis-server ./etc/redis.conf
再无序启动3个sentinel哨兵, 有如下两种方式
#启动哨兵方式一,推荐 ./bin/redis-sentinel ./etc/sentinel.conf #启动哨兵方式二 ./bin/redis-server ../etc/sentinel.conf --sentinel
测试哨兵
从机连接主机26379端口的哨兵,以验证主从连通状态
#从机连接任意sentinel哨兵 ./redis-cli -h 192.168.0.2 -p 26379 #验证sentinel连接 192.168.0.2:26379> sentinel master mymaster #显示结果,部分省略 1) "name" 2) "mymaster" 3) "ip" 4) "192.168.0.2" 5) "port" 6) "6379" 7) "runid" 8) "7ba48df7243231775146f8d2fac2eee76156ab3f" ......