Redis Sentinel 高可用集群搭建(redis4.0)
来源:互联网 发布:荔枝fm mac电脑版 编辑:程序博客网 时间:2024/05/05 09:48
前言
什么是哨兵
Redis Sentinel出生于2012年,Redis 2.4稳定后首次发布,它是一个旨在管理Redis集群的系统。
哨兵的任务
监控(Monitoring):Sentinel会不断地检查你的主服务器和从服务器是否运作正常
提醒(Notification):当被监控的某个Redis服务器出现问题时,Sentinel可以通过API向管理员或者其他应用程序发送通知
自动故障迁移(Automatic failover):当一个主服务器不能正常工作时,Sentinel 会开始一次自动故障迁移操作,它会将失效主
服务器的其中一个从服务器升级为新的主服务器,并让失效主服务器的其他从服务器改为复制新的主服务器;当客户端试图连接失效的主
服务器时,集群也会向客户端返回新主服务器的地址,使得集群可以使用新主服务器代替失效服务器
为什么要用到哨兵
1.从Redis宕机
这个相对而言比较简单,在Redis中从库重新启动后会自动加入到主从架构中,自动完成同步数据。在Redis2.8版本后,主从断线后恢复
的情况下实现增量复制。
2. 主Redis宕机
这个相对而言就会复杂一些,需要以下2步才能完成
i.第一步,在从数据库中执行SLAVEOF NO ONE命令,断开主从关系并且提升为主库继续服务
ii.第二步,将主库重新启动后,执行SLAVEOF命令,将其设置为其他库的从库,这时数据就能更新回来
搭建(一主二从三烧兵)
下载安装
http://blog.csdn.net/tengxing007/article/details/76975555
集群配置
1. master.conf
port 8001bind 127.0.0.1#redis将以守护进程的方式运行,这样可以在redis服务启动的窗口中再可以进行其它操作daemonize yespidfile "/var/run/redis_8001.pid"#cluster-enabled yes#cluster-config-file nodes_8001.conf#cluster-node-timeout 15000appendonly yes#requirepass test123 设置redis客户端或者远程机器连接redis服务器需要的密码#masterauth test123 从服务器和哨兵连接主服务器需要的密码#cluster-require-full-coverage no# Generated by CONFIG REWRITEdir "/home/tengxing/Dtt/redis-cluster"
2. slave.conf(配置两个文件,不同的port)
port 8015daemonize yesslave-read-only yes #requirepass "yjxxclub"slaveof 127.0.0.1 8001#masterauth "yjxxclub"bind 0.0.0.0#cluster-require-full-coverage no# Generated by CONFIG REWRITEdir "/home/tengxing/Dtt/redis-cluster"
3. sentinel.conf(配置三个文件,不同的port)
port 8101 daemonize yes protected-mode no logfile "/opt/redis-cluster/logs/sentinel_8101.log" #master-1 sentinel monitor master-1 10.211.55.10 6381 1 sentinel down-after-milliseconds master-1 5000 sentinel failover-timeout master-1 18000 sentinel auth-pass master-1 test123 sentinel parallel-syncs master-1 1
最后如下图:
启动服务
通过redis安装目录依次启动服务
sudo /usr/local/bin/redis-server ~/Dtt/redis-sentinel/conf/redis_master_8001.confsudo /usr/local/bin/redis-server ~/Dtt/redis-sentinel/conf/redis_slave_8005.confsudo /usr/local/bin/redis-server ~/Dtt/redis-sentinel/conf/redis_slave_8006.confsudo /usr/local/bin/redis-sentinel ~/Dtt/redis-sentinel/conf/sentinel_8101.conf sudo /usr/local/bin/redis-sentinel ~/Dtt/redis-sentinel/conf/sentinel_8201.confsudo /usr/local/bin/redis-sentinel ~/Dtt/redis-sentinel/conf/sentinel_8301.conf
验证:
sudo /usr/local/bin/redis-cli -c -h 127.0.0.1 -p 8101 info sentinel
打出:
# Sentinelsentinel_masters:1sentinel_tilt:0sentinel_running_scripts:0sentinel_scripts_queue_length:0sentinel_simulate_failure_flags:0master0:name=master-1,status=ok,address=127.0.0.1:8001,slaves=2,sentinels=3
ok,搭建成功
后记
理解了原理以后配置非常的简单,其实并不复杂;搭建的同时只需要配置几个文件,然后启动即可,推荐编写一个脚本,避免多次操作,简单快捷。最后将我的配置放在github,便于参考。
参考文章
- https://my.oschina.net/sunhaojava/blog/908468
- http://blog.csdn.NET/robertohuang/article/details/70768922
- Redis Sentinel 高可用集群搭建(redis4.0)
- 基于Sentinel(哨兵)搭建实现Redis高可用集群
- redis高可用之sentinel哨兵集群详解与搭建
- Redis 高可用集群管理工具Sentinel
- Redis Sentinel高可用集群Java客户端
- Redis高可用集群Sentinel哨兵
- 基于keepalived、redis sentinel的高可用redis集群
- Redis高可用集群搭建
- CentOS 7.3 Sentinel实现Redis集群高可用部署
- 基于docker的sentinel的高可用Redis集群
- redis sentinel高可用主从切换(非集群模式)
- redis sentinel高可用搭建测试(Windows下实现)
- Redis Sentinel主从高可用
- redis高可用sentinel原理
- 快速搭建高可用Redis集群
- sentinel搭建redis集群经验总结
- sentinel搭建redis集群经验总结
- Redis、Sentinel集群环境搭建
- sysrq调试linux驱动bug
- 8张图理解Java
- 17.8.21 日记
- See you~(二维树状数组)
- 面试常问问题——计算机网络
- Redis Sentinel 高可用集群搭建(redis4.0)
- Tomcat源码分析(3)--StandardServer类中涉及到的初始化和启动
- Java 8简明教程
- linux挂死oops定位问题
- 大数据学习:MAVEN编译下载太慢,修改为阿里源做法
- poj-1655 树的重心
- PAT A 1100. Mars Numbers (20)
- 分布式事务 ( DTS ) 你必须知道的事儿
- threejs- z-fighting 问题