Redis - sentinel 哨兵模式
Redis_sentinel 哨兵模式;
Redis 架构一般多是一主多从;
Sentinel 哨兵模式就是三组进行相互监控;
wget http://download.redis.io/releases/redis-3.2.4.tar.gz tar -zxvf redis-3.2.4.tar.gz mv redis-3.2.4 redis && cd redis make && make install cp -rp redis/src/redis-trib.rb /usr/local/bin/ cp -rp redis/src/redis-sentinel /usr/local/bin/ mkdir -p redis/{redis_cluster,data,logs}
其他方式: yum -y install ruby ruby-devel rubygems rpm-build gem install redis
配置 Redis 的主从模式;
Redis - port master - 6371 slave - 6372/6373 日志目录:/redis/logs/{6371,6372,6373}/redis.log 数据目录:/redis/data/{6371,6372,6373} 配置目录: master — redis.conf conf/6371/redis.conf slave — redis.conf conf/6372/redis.conf slave — redis.conf conf/6373/redis.conf
主配置信息:6371
从配置信息: 6372
从配置信息 6373 :
sentinel 哨兵:
Sentinel - port sentinel 26370 数据目录:/redis/data/26370/ 日志目录:/redis/logs/sentinel/26370/sentinel.log 配置目录:conf/26371/sentinel.conf
redis 哨兵 sentinel.conf 配置文件
# cat sentinel.conf
port 26370 dir "/redis/data/26370" sentinel monitor mymaster 127.0.0.1 6371 2 // 监控判定 master 失效;需要 2组 sentinel 同意;
// 测试方便可以只写 1
sentinel down-after-milliseconds mymaster 60 // mymaster 设置未响应时间 SDOWN
// 方便这个时间可以设置小一点; sentinel failover-timeout mymaster 60 // failover切换时间 sentinel parallel-syncs mymaster 1 // 指定最大同时同步新maser配置的salve数量 # sentinel auth-pass myMaster 1234 // 配置密码行
// 测试方便可以不用设置
sentinel config-epoch mymaster 0 // 确认mymater SDOWN时长 sentinel leader-epoch mymaster 2 // 同时一时间最多2个slave可同时更新配置.
redis 启动测试;
启动redis 指定配置启动打印日志;
[root@ redis]# cat start.sh src/redis-server conf/6371/redis.conf >> /redis/logs/6371/redis.log & src/redis-server conf/6372/redis.conf >> /redis/logs/6372/redis.log & src/redis-server conf/6373/redis.conf >> /redis/logs/6373/redis.log &
sentinel 哨兵启动 ;
Sentinel 哨兵检测启动:
./src/redis-server sentinel.conf --sentinel &
./src/redis-sentinel sentinel.conf --sentinel &
或者写成 一个启动脚本;
[root@ redis]# cat sentinel-start.sh
src/redis-sentinel sentinel/26379/sentinel.conf --sentinel &> /redis/logs/26379/sentinel.log & 测试 src/redis-cli -h 127.0.0.1 -p 6371/6372/6373 > info 可以查看节点信息; // 尝试切断master 端口 ;会根据设置切换时间进行切换;
杀死 master 主节点测试;
kill master-redis pid :
再远程从任意一个从节点查看:
已经更改 master 为 6373 ;