`
TableMiao
  • 浏览: 75575 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Redis(六) 主从复制、HA集群(基于Sentinel)搭建

阅读更多
Redis() 主从复制、HA集群(基于Sentinel)搭建

一、主从复制

    1.为什么使用,好处?

      1.1 单个redis服务器压力过大,可考虑,master写,slave读,分散缓解服务器压力。

      1.2 一个master可以拥有多个slave,而一个slave又可以拥有多个slave

    2.主从复制过程

      2.1 masterslave 建立连接且slave master 发起同步请求

      2.2 请求成功之后 slave 接受master发送过来的dump.rdb的快照文件

      2.3 slave载入dump.rdb文件

      2.4 masterslave的连接断开时slave可以自动重新建立连接。如果master同时收到多个 slave发来的同步连接命令,只会使用启动一个进程来写数据库镜像,然后发送给所有slave 




3.配置

      1.安装部署一个redis服务。

      2.复制 安装好redis的配置文件 redis.conf redis.conf目录同级 并重新命名(egredis6380.conf

      3.修改端口,绑定主机器的ip和端口(eg: slaveof 192.168.1.118 6379)

      4.修改日志输出目录、快照文件名称、pid等等(如果只是测试是否搭建成功这些不重要)

    eg

      1.首先启动master、再启动slave,会发现slave 会向master 发送一个同步请求

 

   2.master 断开 slave 会一直发送同步命令等待响应

   3.分别启动masterslave的客户端(eg: ./redis-cli -p 6380)在 输入info命令可看到相应的主从信息

4.测试,master 写数据  通过slave的客户端可读出来

 

二、redis集群搭建、主从切换

  1.copy两份redis.conf 修改端口为63806381 且都设置为端口6379slave服务(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监听

  可以看到端口为63806381 为端口6379slave实例




 

 

4.主从切换、断开master即端口为6379的进程

查看sentinel输出、6379主观下线、随即客观下线。尝试master迁移、选择出slave端口为6381作为master,端口监听随即变化为6381

再查看端口为6381info如下,转为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  主从切换配置



 

 

 

 

 

 

 

  • 大小: 103.5 KB
  • 大小: 154.3 KB
  • 大小: 62.3 KB
  • 大小: 26.7 KB
  • 大小: 6.1 KB
  • 大小: 17 KB
  • 大小: 19.6 KB
  • 大小: 196.6 KB
  • 大小: 35.3 KB
  • 大小: 27.4 KB
分享到:
评论

相关推荐

    Redis Sentinel主从高可用方案1

    Redis Sentinel 是 Redis 为了实现高可用性(High Availability, HA)而设计的一种分布式监控和故障转移系统。它能够监控主从结构的 Redis 集群,并在主节点出现故障时,自动将一个从节点提升为主节点,从而确保服务...

    02-Redis持久化、主从与哨兵架构详解.zip

    通过理解并熟练掌握Redis的持久化、主从复制和哨兵架构,开发者可以构建出稳定、高效、容错的Redis集群,为应用程序提供强大的数据存储与访问支持。在实际应用中,根据业务需求和性能指标,灵活选择和调整这些特性,...

    redis-sentinel集群及双机热备

    Redis Sentinel集群和双机热备是 Redis 高可用性(High Availability, HA)的重要组成部分,它们确保了在主节点故障时能够快速切换到备份节点,从而维持服务的连续性。以下将详细介绍这两个概念以及相关配置和操作。...

    Redis集群高可用,主从1

    综上所述,Redis 集群通过主从复制、槽分区和 Sentinel 或 Cluster 等机制实现了高可用性,确保了在节点故障时服务的连续性和数据的安全性。理解这些概念和机制对于正确部署和管理 Redis 集群至关重要。

    redis配置文件(单机版),主从、哨兵、集群配置

    Redis Sentinel是一个高可用性解决方案,监控主从集群的健康状态并自动执行故障转移。每个Sentinel实例都有自己的配置文件,如`sentinel.conf`,需要配置主服务器和从服务器的地址,以及Sentinel的监控策略。...

    Redis服务端实现 & HA1

    在企业环境中,为了保证Redis的高可用性,通常会采用主从复制、哨兵系统(Sentinel)或Cluster集群等策略。主从复制能实现数据备份,哨兵系统则可以监控主从节点状态,自动故障转移。而Redis Cluster则提供了分布式...

    redis-sentinel-bin.7z

    Redis Sentinel是Redis的高可用性(HA)组件,它监控主从复制结构中的Redis服务器,当检测到主服务器出现故障时,Sentinel系统会自动将一个从服务器提升为主服务器,并通知其他从服务器进行切换,从而实现故障恢复。...

    kubernetes集群部署redis

    在Kubernetes(简称K8s)...综上所述,Kubernetes集群部署Redis高可用读写分离数据库涉及到K8s的核心组件、主从复制、故障转移机制以及读写分离策略。通过理解这些概念和实践,可以构建出健壮且灵活的数据库解决方案。

    redis HA策略

    首先,Redis 的 HA 策略主要包括主从复制(Replication)和哨兵系统(Sentinel)。主从复制是基础,哨兵系统在此基础上提供了更高级的监控、故障检测和自动故障转移功能。 1. 主从复制: - 在 Redis 中,数据的写...

    redis-sentinel介绍.rar

    在Redis中,Sentinel系统负责监控主从集群的状态,自动处理主节点故障转移,并向应用提供服务发现功能。理解Redis Sentinel的工作原理和配置是确保Redis服务稳定运行的关键。 1. **Sentinel的主要功能** - **监控...

    Redis服务之高可用组件sentinel详解

    Sentinel系统设计的目标是监控Redis主从集群中的Master节点,当Master节点出现故障时,能够自动进行故障转移,选择一个Slave节点升级为新的Master,同时保证数据的一致性和系统的稳定性。Sentinel系统通过分布式的...

    redis-64.3.0.503-sentinel.zip

    Redis Sentinel 是一个重要的组件,它是 Redis 高可用性(HA)解决方案的关键部分。在这个名为 "redis-64.3.0.503-sentinel.zip" 的压缩包中,包含的是 Redis Sentinel 版本 64.3.0.503 的二进制文件和其他相关资源...

    JAVA+Redis+哨兵架构搭建+供参考学习使用

    4. 高可用性(HA)架构:通过哨兵系统,可以实现Redis的主从复制和故障切换,提高系统的容错性和稳定性。在Java应用中,通常会配置哨兵客户端,使其能够自动识别当前的主节点,避免在主从切换时出现连接异常。 5. ...

    Redis哨兵集群配置示例.rar

    Redis Sentinel是Redis高可用性(HA)解决方案的关键组件,它为Redis主从集群提供了监控、故障检测和自动故障转移的功能。以下是对Redis哨兵集群配置的详细解释。 首先,了解Redis Sentinel的基本概念: 1. **哨兵...

    sentinel 集群配置文件

    Sentinel是Redis的一个重要组件,主要用于提供高可用性(HA)解决方案。在Redis集群中,Sentinel系统监控主节点和从节点的状态,当检测到主节点故障时,它会自动进行故障转移,将一个从节点提升为主节点,并让其他从...

    redis-sentinel.tar.gz

    Redis Sentinel 是一个重要的组件,它是 Redis 高可用性(HA)解决方案的关键部分。这个压缩包“redis-sentinel.tar.gz”包含了一组脚本,旨在帮助用户设置和管理 Redis Sentinel 系统,确保数据的持久性和服务的...

    keepalived+redis高可用主备配置文件和脚本

    - 为了实现高可用,Redis提供了主从复制(Replication)、Sentinel监控系统和Cluster分布式集群等机制。 3. **Keepalived+Redis高可用配置**: - 配置主备模式,通常会设置两台服务器分别运行`keepalived`,一台...

    结合keepalived实现redis群集高可用故障自动切换

    - Redis集群的搭建步骤 - VRRP协议的工作原理 - 如何配置keepalived以监控Redis服务 - 主从复制和Sentinel的对比 - 故障切换的详细流程和示例 - 实际应用场景和最佳实践 通过上述内容,我们可以深入理解如何利用...

Global site tag (gtag.js) - Google Analytics