一、主从复制
1.为什么使用,好处?
1.1 单个redis服务器压力过大,可考虑,master写,slave读,分散缓解服务器压力。
1.2 一个master可以拥有多个slave,而一个slave又可以拥有多个slave
2.主从复制过程
2.1 master、slave 建立连接且slave 向master 发起同步请求
2.2 请求成功之后 slave 接受master发送过来的dump.rdb的快照文件
2.3 slave载入dump.rdb文件
2.4 当master和slave的连接断开时slave可以自动重新建立连接。如果master同时收到多个 slave发来的同步连接命令,只会使用启动一个进程来写数据库镜像,然后发送给所有slave。
3.配置
1.安装部署一个redis服务。
2.复制 安装好redis的配置文件 redis.conf 与redis.conf目录同级 并重新命名(eg:redis6380.conf)
3.修改端口,绑定主机器的ip和端口(eg: slaveof 192.168.1.118 6379)
4.修改日志输出目录、快照文件名称、pid等等(如果只是测试是否搭建成功这些不重要)
eg:
1.首先启动master、再启动slave,会发现slave 会向master 发送一个同步请求
2.若master 断开 slave 会一直发送同步命令等待响应
3.分别启动master和slave的客户端(eg: ./redis-cli -p 6380)在 输入info命令可看到相应的主从信息
4.测试,master 写数据 通过slave的客户端可读出来
二、redis集群搭建、主从切换
1.copy两份redis.conf 修改端口为6380、6381 且都设置为端口6379的slave服务(eg: slaveof 192.168.1.118 6379);
2.修改sentinel.conf文件,修改其监听端口为26379 且分别监听上述三个实例。
eg:
#master 6379
sentinel monitor master-6379 192.168.1.118 6379 1
sentinel down-after-milliseconds master-6379 5000
sentinel parallel-syncs master-6379 1
sentinel failover-timeout master-6379 60000
#master 6380
sentinel monitor master-6380 192.168.1.118 6380 1
sentinel down-after-milliseconds master-6380 5000
sentinel parallel-syncs master-6380 1
sentinel failover-timeout master-6380 60000
#master 6381
sentinel monitor master-6380 192.168.1.118 6381 1
sentinel down-after-milliseconds master-6381 5000
sentinel parallel-syncs master-6381 1
sentinel failover-timeout master-6381 60000
注: line1表示Sentinel去监视一个名为 master-6379 的主redis实例,这个主实例的IP地址为本机地址 192.168.1.118 ,端口号为 6379 ,而将这个主实例判断为失效至少需要 1个 Sentinel进程的同意,只要同意Sentinel的数量不达标,自动failover就不会执行。
line2 表示 指定了Sentinel认为Redis实例已经失效所需的毫秒数。 当实例超过该时间没有返回PING,或者直接返回错误,那么Sentinel将这个实例标记为主观下线。只有一个 Sentinel进程将实例标记为主观下线并不一定会引起实例的自动故障迁移:只有在足够数量的Sentinel都将一个实例标记为主观下线之后,实例才 会被标记为客观下线,这时自动故障迁移才会执行。
line3表示 指定了在执行故障转移时,最多可以有多少个从Redis实例在同步新的主实例,在从Redis实例较多的情况下这个数字越小,同步的时间越长,完成故障转移所需的时间就越长
line4 表示 如果在该时间(ms)内未能完成failover操作,则认为该failover失败
3.启动服务和sentinel监听
可以看到端口为6380和6381 为端口6379的slave实例
4.主从切换、断开master即端口为6379的进程
查看sentinel输出、6379主观下线、随即客观下线。尝试master迁移、选择出slave端口为6381作为master,端口监听随即变化为6381
再查看端口为6381的info如下,转为master成功
重新重启6379进程,sentinel监听可看到 此时的6379作为slave加入,主从切换完成
参考:
http://www.cnblogs.com/daoluanxiaozi/p/3724299.html
http://www.cnblogs.com/kreo/p/4423362.html redis.conf详解
http://www.2cto.com/database/201501/367181.html 主从同步原理
http://www.open-open.com/lib/view/open1340001854799.html Redis的复制功能以及Redis
复制机制本身的优缺点以及集群搭建问题
http://www.bubuko.com/infodetail-926782.html 切换详解
http://www.2cto.com/database/201502/377061.html 主从切换配置
相关推荐
Redis Sentinel 是 Redis 为了实现高可用性(High Availability, HA)而设计的一种分布式监控和故障转移系统。它能够监控主从结构的 Redis 集群,并在主节点出现故障时,自动将一个从节点提升为主节点,从而确保服务...
通过理解并熟练掌握Redis的持久化、主从复制和哨兵架构,开发者可以构建出稳定、高效、容错的Redis集群,为应用程序提供强大的数据存储与访问支持。在实际应用中,根据业务需求和性能指标,灵活选择和调整这些特性,...
Redis Sentinel集群和双机热备是 Redis 高可用性(High Availability, HA)的重要组成部分,它们确保了在主节点故障时能够快速切换到备份节点,从而维持服务的连续性。以下将详细介绍这两个概念以及相关配置和操作。...
综上所述,Redis 集群通过主从复制、槽分区和 Sentinel 或 Cluster 等机制实现了高可用性,确保了在节点故障时服务的连续性和数据的安全性。理解这些概念和机制对于正确部署和管理 Redis 集群至关重要。
Redis Sentinel是一个高可用性解决方案,监控主从集群的健康状态并自动执行故障转移。每个Sentinel实例都有自己的配置文件,如`sentinel.conf`,需要配置主服务器和从服务器的地址,以及Sentinel的监控策略。...
在企业环境中,为了保证Redis的高可用性,通常会采用主从复制、哨兵系统(Sentinel)或Cluster集群等策略。主从复制能实现数据备份,哨兵系统则可以监控主从节点状态,自动故障转移。而Redis Cluster则提供了分布式...
Redis Sentinel是Redis的高可用性(HA)组件,它监控主从复制结构中的Redis服务器,当检测到主服务器出现故障时,Sentinel系统会自动将一个从服务器提升为主服务器,并通知其他从服务器进行切换,从而实现故障恢复。...
首先,Redis 的 HA 策略主要包括主从复制(Replication)和哨兵系统(Sentinel)。主从复制是基础,哨兵系统在此基础上提供了更高级的监控、故障检测和自动故障转移功能。 1. 主从复制: - 在 Redis 中,数据的写...
在Kubernetes(简称K8s)...综上所述,Kubernetes集群部署Redis高可用读写分离数据库涉及到K8s的核心组件、主从复制、故障转移机制以及读写分离策略。通过理解这些概念和实践,可以构建出健壮且灵活的数据库解决方案。
在Redis中,Sentinel系统负责监控主从集群的状态,自动处理主节点故障转移,并向应用提供服务发现功能。理解Redis Sentinel的工作原理和配置是确保Redis服务稳定运行的关键。 1. **Sentinel的主要功能** - **监控...
Sentinel系统设计的目标是监控Redis主从集群中的Master节点,当Master节点出现故障时,能够自动进行故障转移,选择一个Slave节点升级为新的Master,同时保证数据的一致性和系统的稳定性。Sentinel系统通过分布式的...
Redis Sentinel 是一个重要的组件,它是 Redis 高可用性(HA)解决方案的关键部分。在这个名为 "redis-64.3.0.503-sentinel.zip" 的压缩包中,包含的是 Redis Sentinel 版本 64.3.0.503 的二进制文件和其他相关资源...
4. 高可用性(HA)架构:通过哨兵系统,可以实现Redis的主从复制和故障切换,提高系统的容错性和稳定性。在Java应用中,通常会配置哨兵客户端,使其能够自动识别当前的主节点,避免在主从切换时出现连接异常。 5. ...
Redis Sentinel是Redis高可用性(HA)解决方案的关键组件,它为Redis主从集群提供了监控、故障检测和自动故障转移的功能。以下是对Redis哨兵集群配置的详细解释。 首先,了解Redis Sentinel的基本概念: 1. **哨兵...
Sentinel是Redis的一个重要组件,主要用于提供高可用性(HA)解决方案。在Redis集群中,Sentinel系统监控主节点和从节点的状态,当检测到主节点故障时,它会自动进行故障转移,将一个从节点提升为主节点,并让其他从...
Redis Sentinel 是一个重要的组件,它是 Redis 高可用性(HA)解决方案的关键部分。这个压缩包“redis-sentinel.tar.gz”包含了一组脚本,旨在帮助用户设置和管理 Redis Sentinel 系统,确保数据的持久性和服务的...
- 为了实现高可用,Redis提供了主从复制(Replication)、Sentinel监控系统和Cluster分布式集群等机制。 3. **Keepalived+Redis高可用配置**: - 配置主备模式,通常会设置两台服务器分别运行`keepalived`,一台...
- Redis集群的搭建步骤 - VRRP协议的工作原理 - 如何配置keepalived以监控Redis服务 - 主从复制和Sentinel的对比 - 故障切换的详细流程和示例 - 实际应用场景和最佳实践 通过上述内容,我们可以深入理解如何利用...