精华内容
下载资源
问答
  • redis哨兵模式选举机制

    千次阅读 2020-10-15 10:29:20
    redis集群的主节点故障时,Sentinel集群将从剩余的从节点中选举一个新的主节点,有以下步骤: 故障节点主观下线故障节点客观下线Sentinel集群选举LeaderSentinel Leader决定新主节点 选举过程 1、主观下线 ...

    当redis集群的主节点故障时,Sentinel集群将从剩余的从节点中选举一个新的主节点,有以下步骤:

    1. 故障节点主观下线
    2. 故障节点客观下线
    3. Sentinel集群选举Leader
    4. Sentinel Leader决定新主节点

    选举过程

    1、主观下线

    Sentinel集群的每一个Sentinel节点会定时对redis集群的所有节点发心跳包检测节点是否正常。如果一个节点在down-after-milliseconds时间内没有回复Sentinel节点的心跳包,则该redis节点被该Sentinel节点主观下线。

    2、客观下线

    当节点被一个Sentinel节点记为主观下线时,并不意味着该节点肯定故障了,还需要Sentinel集群的其他Sentinel节点共同判断为主观下线才行。

    该Sentinel节点会询问其他Sentinel节点,如果Sentinel集群中超过quorum数量的Sentinel节点认为该redis节点主观下线,则该redis客观下线。

    如果客观下线的redis节点是从节点或者是Sentinel节点,则操作到此为止,没有后续的操作了;如果客观下线的redis节点为主节点,则开始故障转移,从从节点中选举一个节点升级为主节点。

    3、Sentinel集群选举Leader

    如果需要从redis集群选举一个节点为主节点,首先需要从Sentinel集群中选举一个Sentinel节点作为Leader。

    每一个Sentinel节点都可以成为Leader,当一个Sentinel节点确认redis集群的主节点主观下线后,会请求其他Sentinel节点要求将自己选举为Leader。被请求的Sentinel节点如果没有同意过其他Sentinel节点的选举请求,则同意该请求(选举票数+1),否则不同意。

    如果一个Sentinel节点获得的选举票数达到Leader最低票数(quorumSentinel节点数/2+1的最大值),则该Sentinel节点选举为Leader;否则重新进行选举。

    在这里插入图片描述

    4、Sentinel Leader决定新主节点

    当Sentinel集群选举出Sentinel Leader后,由Sentinel Leader从redis从节点中选择一个redis节点作为主节点:

    1. 过滤故障的节点
    2. 选择优先级slave-priority最大的从节点作为主节点,如不存在则继续
    3. 选择复制偏移量(数据写入量的字节,记录写了多少数据。主服务器会把偏移量同步给从服务器,当主从的偏移量一致,则数据是完全同步)最大的从节点作为主节点,如不存在则继续
    4. 选择runid(redis每次启动的时候生成随机的runid作为redis的标识)最小的从节点作为主节点

    为什么Sentinel集群至少3节点

    一个Sentinel节选举成为Leader的最低票数为quorumSentinel节点数/2+1的最大值,如果Sentinel集群只有2个Sentinel节点,则

    Sentinel节点数/2 + 1
    = 2/2 + 1
    = 2
    
     

      即Leader最低票数至少为2,当该Sentinel集群中由一个Sentinel节点故障后,仅剩的一个Sentinel节点是永远无法成为Leader。

      也可以由此公式可以推导出,Sentinel集群允许1个Sentinel节点故障则需要3个节点的集群;允许2个节点故障则需要5个节点集群。

      展开全文
    • 搭建一主二从三哨兵 作用:读写分离 容灾恢复 启动多台redis容器,修改配置文件中的端口号以及日志文件名称 其实对于容器,可以不修改端口,只需启动容器时映射不同的端口即可 1 修改master和slave的配置文件 master...

      搭建一主二从三哨兵

      作用:读写分离 容灾恢复
      启动多台redis容器,修改配置文件中的端口号以及日志文件名称
      其实对于容器,可以不修改端口,只需启动容器时映射不同的端口即可

      1 修改master和slave的配置文件

      master

      # 注释这一行,表示Redis可以接受任意ip的连接
      # bind 127.0.0.1 
      
      # 关闭保护模式
      protected-mode no 
      
      # 让redis服务后台运行
      daemonize no 
      
      # 设定密码(可选,如果这里开启了密码要求,slave的配置里就要加这个密码. 只是练习配置,就不使用密码认证了)
      # requirepass masterpassword 
      
      # 配置日志路径,为了便于排查问题,指定redis的日志文件目录
      logfile "/var/log/redis/redis.log"
      

      slave

      注意:slave对应的master地址是master容器所在宿主机的地址
      # 注释这一行,表示Redis可以接受任意ip的连接
      # bind 127.0.0.1 
      
      # 关闭保护模式
      protected-mode no 
      
      # 让redis服务后台运行
      daemonize no
      
      # 设定密码(可选,如果这里开启了密码要求,slave的配置里就要加这个密码)
      requirepass masterpassword 
      
      # 设定主库的密码,用于认证,如果主库开启了requirepass选项这里就必须填相应的密码
      # masterauth <master-password>
      masterauth 123
      # requirepass foobared
      requirepass 123
      
      # 设定master的IP和端口号,redis配置文件中的默认端口号是6379
      # 低版本的redis这里会是slaveof,意思是一样的,因为slave是比较敏感的词汇,所以在redis后面的版本中不在使用slave的概念,取而代之的是replica
      # 将35.236.172.131做为主,其余两台机器做从。ip和端口号按照机器和配置做相应修改。
      replicaof 47.112.136.29 6379
      
      # 配置日志路径,为了便于排查问题,指定redis的日志文件目录
      logfile "/var/log/redis/redis.log"
      

      2 启动master和多台slave

      docker run -d --name redis_master -v ~/redis/master/data:/data  -v ~/redis/master/redis.conf:/usr/local/etc/redis.conf  \
       -p 6379:6379 redis redis-server /usr/local/etc/redis.conf
       
       
      docker run -d --name redis_slave1 -v ~/redis/slave1/data:/data  -v ~/redis/slave1/redis.conf:/usr/local/etc/redis.conf  \
       -p 6380:6380 redis redis-server /usr/local/etc/redis.conf
       
       
      docker run -d --name redis_slave2  -v ~/redis/slave2/data:/data  -v ~/redis/slave2/redis.conf:/usr/local/etc/redis.conf  \
       -p 6381:6381 redis redis-server /usr/local/etc/redis.conf
      

      3 配置哨兵

      #当前Sentinel服务运行的端口
      port 26379
      # 哨兵监听的主服务器
      sentinel monitor mymaster 127.0.0.1 6380 2
      sentinel down-after-milliseconds mymaster 3000
      # 3s内mymaster无响应,则认为mymaster宕机了
      sentinel failover-timeout mymaster 10000
      #如果10秒后,mysater仍没启动过来,则启动failover
      sentinel auth-pass mymaster 123
      # 执行故障转移时, 最多有1个从服务器同时对新的主服务器进行同步
      sentinel config-epoch mymaster 0
      

      4 启动多个哨兵

      docker run -it --name sentinel -p 26379:26379  -v ~/redis/sentinel1/data:/data  \
      -v ~/redis/sentinel1/sentinel.conf:/usr/local/etc/sentinel.conf -d redis redis-sentinel /usr/local/etc/sentinel.conf
      
      docker run -it --name sentinel -p 26380:26380-v ~/redis/sentinel2/data:/data  \
      -v ~/redis/sentinel2/sentinel.conf:/usr/local/etc/sentinel.conf -d redis redis-sentinel /usr/local/etc/sentinel.conf
      
      docker run -it --name sentinel -p 26381:26381-v ~/redis/sentinel3/data:/data  \
      -v ~/redis/sentinel3/sentinel.conf:/usr/local/etc/sentinel.conf -d redis redis-sentinel /usr/local/etc/sentinel.conf
      

      在这里插入图片描述

      运行过程

      1 启动哨兵后,哨兵每10s会给master发送info指令,来获取从机的信息,
      然后并向master订阅一个频道_sentinel_:hello
      2 当有其它哨兵加入时,它会每隔2s向这个频道发送一个消息,包含了该哨兵的ip和端口以及对master的判断结果
      其它订阅了该频道的哨兵就会知道有一个新哨兵加入了,同时还可以知道它是否认为master主观下线
      3 sentinel会每秒向master、slave、sentinel 发送ping命令,如果超过down-after-milliseconds(最大失联时间)内没有回复,
      就认为对方下线了,即主观下线,为了避免误判,会询问其它哨兵对master的判断

      命令为  sentinel is-master-down-by-addr 127.0.0.1 6379 0 * (*表示直接交换对master下线的判断)
      

      返回结果为三个参数
      ·

      down_state:目标Sentinel节点对于主节点的下线判断,1是下线,0是在线。
      ·leader_runid:当leader_runid等于“*”时,代表返回结果是用来做主节点是否不可达,当leader_runid等于具体的runid,代表目标节点同意runid成为领导者。
      ·leader_epoch:领导者纪元。
      

      当超过quorum个数的哨兵认为master主观下线了,才会切换master,即客观下线
      切换后,master slave sentinel的配置文件内容会发生变化
      如果是slave或sentinel主观下线,就没有后续操作
      4 在执行master切换时,需要向从多个sentinel中选举一个领导者,来执行故障转移操作
      5 正常运行时,哨兵会每10秒向集群中的master、slave发送info命令,当master下线后,会每秒给slave发送info命令

      哨兵的3个定时器

      1 每秒向master、slave以及其它哨兵发送ping命令,判断这些节点是否可达
      以及判断master是否主观下线
      1 每2s向master的_sentinel_:hello频道发送哨兵的节点信息以及它对master的判断结果
      用于发现新的哨兵信息,以及为客观下线以及领导者选举作依据
      2 每10s向所有redis节点发送info指令,用于获取redis集群的最新结构信息
      在这里插入图片描述

      sentinel领导者选举:

      使用了Rafg算法思想
      1 每个对master作出主观下线的哨兵会像其它哨兵发出sentinel is-master-down-by-addr命令,让它们给自己投票
      2 其它哨兵在第一次收到该命令时,会给这个对方投票,如果时之后的收到的就不会做出反馈
      3 如果某个哨兵的票数超过一半且超过了quorum,它就会成为领导者
      4 如果该过程中没有产生领导者,就继续下一轮,知道产生领导者为止

      选择新master:

      哨兵中选举出的领导者负责从slave中选一个作为新master
      1 过滤不健康的slave,即5s内没有响应哨兵的ping命令,或者与之前的master累计失联时间超过10*down-after-milliseconds(最大失联时间)秒
      2 选择slave-proprity(从节点优先级)最高的从节点列表
      3 选择复制偏移量最大的从节点,即从master复制的数据越多
      4 选择runid最小的从节点
      5 如果以上条件还不能选出一个,就看哪个从节点给之前master发送的命令最多
      在这里插入图片描述

      故障转移:

      1 哨兵领导者节点使用slaveof no none,让选出来的从节点成为新master
      2 领导者节点给剩余的从节点发送命令slaveof ip port,让它们成为新master的从节点
      3 所有的哨兵节点会把原来的master更新为从节点,然后监视新master
      待原master恢复后,就去全量复制新master的数据

      从节点的作用:

      1 故障恢复,成为新的master
      2 扩展master的读能力

      身份认证:

      requirepass: 连接到该redis的密码
      masterauth: 对应master的密码
      因为slave可能会变成master,所以上述两个密码slave都要配置

      哨兵模式的缺点:

      写都是在master上的,而最新的数据复制到从机上,存在延迟

      展开全文
    • Redis哨兵模式原理剖析)

      千次阅读 2021-01-01 17:27:45
      Redis中主从复制解决高可用的方案是:当主节点服务器宕机后,需要手动把一台从节点服务器切换为主节点服务器,手动实现老大选举,费事费力,还会造成一段时间内服务不可用。实际企业开发中绝大多数都会优先考虑...


      前言

      在Redis中主从复制解决高可用的方案是:当主节点服务器宕机后,需要手动把一台从节点服务器切换为主节点服务器,手动实现老大选举,费事费力,还会造成一段时间内服务不可用。实际企业开发中绝大多数都会优先考虑哨兵模式。

      一、Sentinel模式概述

      哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。

      哨兵模式的架构图:
      在这里插入图片描述
      哨兵的作用:

      1、通过发送命令,让Redis服务器返回其监控的运行状态,包括主服务器和从服务器。

      2、当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们自动选举切换为主服务器。

      企业开发哨兵配置通常是多个:
      在这里插入图片描述
      假设master宕机了,哨兵1先检测到master节点宕机状态,系统并不会立即做出重新选举的行为,仅仅是哨兵1认为当前的master不可用了,这个现象称之为:主观下线,当后面的哨兵也检测到这个master不可用,并且数量达到一定值的时候,那么哨兵1、2、3之间才会做出一次选举投票的行为,由一个哨兵发起,并进行投票选举。选举通过后,产生最新的master。

      二、配置哨兵模式

      在我们本机器上,配置1个哨兵和1主2从的Redis服务器来演示这个过程。

      服务器IP类型端口
      Redis47.95.7.1596379
      Redis47.95.7.1596380
      Redis47.95.7.1596381

      1.哨兵配置

      前提条件:配置好主从模式,启动好三台机器。

      首先配置Redis的哨兵服务器,新建sentinel.conf文件如下:

      [root@izhkyje12i9nrez dtconfig]# vim sentinel.conf
      

      编辑配置如下:

      # 默认端口
      port 26379
      # sentinel monitor 被监控的名称 host port 1
      sentinel monitor mymaster 127.0.0.1 6379 1
      

      注意:127.0.0.1 只能在该台机器局域网内访问,如果你是使用SpringBoot连接哨兵模式,那么这个ip,直接改为局域网IP地址即可。

      启动哨兵:

      redis-sentinel dtconfig/sentinel.conf
      

      在这里插入图片描述
      此时哨兵监视着我们的主机6379,当我们断开主机后,就会从新选举master,如果后面主机回来了,只能当做从机了。

      1.1 优点:

      1. 哨兵集群,基于主从复制模式,所有主从复制的优点,它都有。
      2. 主从可以切换,故障可以转移,系统的可用性更好。
      3. 哨兵模式是主从模式的升级,手动到自动,更加健壮

      1.2 缺点:

      1. 实现哨兵模式的配置其实是很麻烦的,里面有很多配置项
      2. Redis不好在线扩容,集群容量一旦达到上限,在线扩容就十分麻烦

      哨兵模式的全部配置

      # Example sentinel.conf
       
      # 哨兵sentinel实例运行的端口 默认26379
      port 26379
       
      # 哨兵sentinel的工作目录
      dir /tmp
       
      # 哨兵sentinel监控的redis主节点的 ip port 
      # master-name  可以自己命名的主节点名字 只能由字母A-z、数字0-9 、这三个字符".-_"组成。
      # quorum 当这些quorum个数sentinel哨兵认为master主节点失联 那么这时 客观上认为主节点失联了
      # sentinel monitor <master-name> <ip> <redis-port> <quorum>
      sentinel monitor mymaster 127.0.0.1 6379 1
       
      # 当在Redis实例中开启了requirepass foobared 授权密码 这样所有连接Redis实例的客户端都要提供密码
      # 设置哨兵sentinel 连接主从的密码 注意必须为主从设置一样的验证密码
      # sentinel auth-pass <master-name> <password>
      sentinel auth-pass mymaster MySUPER--secret-0123passw0rd
       
       
      # 指定多少毫秒之后 主节点没有应答哨兵sentinel 此时 哨兵主观上认为主节点下线 默认30秒
      # sentinel down-after-milliseconds <master-name> <milliseconds>
      sentinel down-after-milliseconds mymaster 30000
       
      # 这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行 同步,
      这个数字越小,完成failover所需的时间就越长,
      但是如果这个数字越大,就意味着越 多的slave因为replication而不可用。
      可以通过将这个值设为 1 来保证每次只有一个slave 处于不能处理命令请求的状态。
      # sentinel parallel-syncs <master-name> <numslaves>
      sentinel parallel-syncs mymaster 1
      
      # 故障转移的超时时间 failover-timeout 可以用在以下这些方面: 
      #1. 同一个sentinel对同一个master两次failover之间的间隔时间。
      #2. 当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的master那里同步数据时。
      #3.当想要取消一个正在进行的failover所需要的时间。  
      #4.当进行failover时,配置所有slaves指向新的master所需的最大时间。不过,即使过了这个超时,slaves依然会被正确配置为指向master,但是就不按parallel-syncs所配置的规则来了
      # 默认三分钟
      # sentinel failover-timeout <master-name> <milliseconds>
      sentinel failover-timeout mymaster 180000
       
      # SCRIPTS EXECUTION
       
      #配置当某一事件发生时所需要执行的脚本,可以通过脚本来通知管理员,例如当系统运行不正常时发邮件通知相关人员。
      #对于脚本的运行结果有以下规则:
      #若脚本执行后返回1,那么该脚本稍后将会被再次执行,重复次数目前默认为10
      #若脚本执行后返回2,或者比2更高的一个返回值,脚本将不会重复执行。
      #如果脚本在执行过程中由于收到系统中断信号被终止了,则同返回值为1时的行为相同。
      #一个脚本的最大执行时间为60s,如果超过这个时间,脚本将会被一个SIGKILL信号终止,之后重新执行。
       
      #通知型脚本:当sentinel有任何警告级别的事件发生时(比如说redis实例的主观失效和客观失效等等),将会去调用这个脚本,
      #这时这个脚本应该通过邮件,SMS等方式去通知系统管理员关于系统不正常运行的信息。调用该脚本时,将传给脚本两个参数,
      #一个是事件的类型,
      #一个是事件的描述。
      #如果sentinel.conf配置文件中配置了这个脚本路径,那么必须保证这个脚本存在于这个路径,并且是可执行的,否则sentinel无法正常启动成功。
      #通知脚本
      # sentinel notification-script <master-name> <script-path>
        sentinel notification-script mymaster /var/redis/notify.sh
       
      # 客户端重新配置主节点参数脚本
      # 当一个master由于failover而发生改变时,这个脚本将会被调用,通知相关的客户端关于master地址已经发生改变的信息。
      # 以下参数将会在调用脚本时传给脚本:
      # <master-name> <role> <state> <from-ip> <from-port> <to-ip> <to-port>
      # 目前<state>总是“failover”,
      # <role>是“leader”或者“observer”中的一个。 
      # 参数 from-ip, from-port, to-ip, to-port是用来和旧的master和新的master(即旧的slave)通信的
      # 这个脚本应该是通用的,能被多次调用,不是针对性的。
      # sentinel client-reconfig-script <master-name> <script-path>
      sentinel client-reconfig-script mymaster /var/redis/reconfig.sh
      

      总结

      sentinel可以让redis实现主从复制,当一个集群中的master失效之后,sentinel可以选举出一个新的master用于自动接替master的工作,集群中的其他redis服务器自动指向新的master同步数据。一般建议sentinel采取奇数台,防止某一台sentinel无法连接到master导致误切换。

      Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独立运行的进程,它能监控多个master-slave集群,发现master宕机后能进行自动切换。Sentinel由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器。

      展开全文
    • Redis 哨兵模式主要是为Redis主从同步架构服务的,有时候主节点宕机,需要哨兵进行监控、通知,选举哨兵是干什么用的? sentinel,中文名是哨兵哨兵redis 集群机构中非常重要的一个组件,主要有以下功能: ...

      前言

      Redis 哨兵模式主要是为Redis主从同步架构服务的,有时候主节点宕机,需要哨兵进行监控、通知,选举。

      哨兵是干什么用的?

      sentinel,中文名是哨兵。哨兵是 redis 集群机构中非常重要的一个组件,主要有以下功能:
      在这里插入图片描述

      • 集群监控:负责监控 redis master 和 slave 进程是否正常工作。
      • 消息通知:如果某个 redis 实例有故障,那么哨兵负责发送消息作为报警通知给管理员。
      • 故障转移:如果 master node 挂掉了,会自动转移到 slave node 上。
      • 配置中心:如果故障转移发生了,通知 client 客户端新的 master 地址。

      哨兵用于实现 redis 集群的高可用,本身也是分布式的,作为一个哨兵集群去运行,互相协同工作。

      故障转移时,判断一个 master node 是否宕机了,需要大部分的哨兵都同意才行,涉及到了分布式选举的问题。
      即使部分哨兵节点挂掉了,哨兵集群还是能正常工作的,因为如果一个作为高可用机制重要组成部分的故障转移系统本身是单点的,那就很坑爹了。

      哨兵选举流程

      1. 每个在线的哨兵节点都可以成为领导者,当它确认主节点下线时,会向其他哨兵发is-master-down-by-addr命令,征求判断并要求将自己设置为领导者,由领导者处理故障转移;

      2. 当其他哨兵收到此命令时,可以同意或者拒绝它成为领导者;

      3. 如果哨兵3发现自己在选举的票数大于等于哨兵的个数/2+1时,将会成为领导者,如果没有超过,继续选举。

      展开全文
    • Redis 哨兵模式原理

      2021-03-21 09:20:58
      Redis 哨兵模式原理
    • 简介sentinel是redis高可用的解决方案,sentinel系统(N个sentinel实例,N >= 1)可以监视一个或者多个redis master服务,以及这些master服务的所有从服务;当某个master服务下线时,自动将该master下的某个从服务...
    • Redis哨兵模式原理

      2020-03-25 19:00:29
      Redis哨兵模式原理
    • 哨兵是一个分布式系统,用于对主从结构中的每台服务器进行监视,当出现故障时,通过投票机制选择新的master并将所有slave连接到新的master 哨兵的作用: 监控:不断地检查master和slave是否正常运行。maste..
    • Redis哨兵模式以及工作原理 哨兵的作用 通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。 当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从...
    • 目录 主从切换技术 哨兵模式 哨兵的作用 哨兵集群以及选举过程 ...当主服务器宕机后, 需要手动把一台从服务器切换为主服务器,这就需要人工干预, 费事费力, 还...哨兵模式是一种特殊的模式Redis提供了哨兵的命令...
    • Redis 哨兵选举机制

      2021-10-13 10:33:48
      redis集群选举分析 当salve发现自己的master变为FAIL状态时,尝试进行Failover(故障切换) 当存在多个slave的时候,就需要竞争成为master,过程如下 (1) slave发现自己的master变为FAIL (2) 将自己记录的...
    • 主从复制和哨兵模式的搭建,请参考其他文章,很简单,而且别人写的很详细,这里主要解决哨兵模式无法切换的问题。 目前我这边的配置为: 一主二从三哨兵 出现的问题主要有: 问题1:没有看到切换master节点的信息: ...
    • redis哨兵模式原理及实现

      千次阅读 2020-01-13 00:11:28
      提醒(Notification): 当被监控的某个 Redis出现问题时, 哨兵(sentinel) 可以通过 API 向管理员或者其他应用程序发送通知。 自动故障迁移(Automatic failover): 当一个Master不能正常工作时,哨兵(sentin...
    • Redis哨兵选举算法

      千次阅读 2020-10-06 16:25:03
      文章目录1、哨兵的三个定时任务2、 主观下线(SDOWN)和客观下线(ODOWN)3、选举Leader哨兵,来进行故障转移(1)Raft简单介绍(2) Term(任期)(3) RPC(4) 选举流程4、主节点选取5、故障转移 1、哨兵的三个...
    • 这里写目录标题实验环境报错现象解决方法 ...sentinel 不能自动选举出新的master并,出现 failover-abort-no-good-slave 错误 解决方法 修改redis.conf 三台全部修改为 bind 0.0.0.0 问题解决! ...
    • redis哨兵模式选举集群master

      千次阅读 2019-10-22 16:34:23
      1.说明 ​ 案例是在windows环境下运行的,...​ 三个哨兵 2.redis集群配置 ​ master节点配置与启动(Redis-x64-3.0.501-6379) ​ 使用默认配置即可,端口6379 ​ 启动:CMD下 redis-server redis.windows.conf ...
    • Redis哨兵机制原理详解

      千次阅读 2021-01-15 23:53:31
      哨兵架构下client端第一次从哨兵找出redis的主节点,后续就直接访问redis的主节点,不会每次都通过sentinel代理访问redis的主节点,当redis的主节点发生变化,哨兵会第一时间感知到,并且哨兵会早主从模式的从节点....
    • redis哨兵选举条件

      千次阅读 2020-03-25 20:04:20
      edis哨兵模式redis的高可用架构的一种方式,它的出现是为了解决主从模式下主节点挂了不能自动故障转移的问题,下面是比较简单的哨兵的架构 实际上手搭建过哨兵的同学应该知道,一个哨兵里有个配置sentinel ...
    • docker搭建redis哨兵模式集群 一、搭建redis一主两从集群 1.创建docker网络,为了容器间相互通信 docker network create redis 2.运行redis容器 docker run -it -d --network redis --restart=always --name redis...
    • redis主从复制下哨兵模式---选举原理

      千次阅读 2019-05-06 13:37:55
      redis主从复制下哨兵模式---选举原理 一.哨兵机制 任务:  有了主从复制的实现以后,如果想对主服务器进行监控,那么在redis2.6以后提供了一个"哨兵"的机制。顾名思义,哨兵的含义就是监控redis系统的运行...
    • Redis哨兵选举细节

      千次阅读 2020-05-24 17:30:53
      Redis哨兵选举细节1、sdown和odown转换2、哨兵集群的自动发现3、slave配置的自动纠正4、slave->master选举算法5、quorum和majority6、configuration epoch7、configuraiton传播 1、sdown和odown转换 sdown和...
    • Redis 哨兵模式,哨兵模式优缺点,哨兵模式配置文件的配置信息 废话不多说,直接上代码(总结) Redis 哨兵模式 1.当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段...
    • redis哨兵模式原理及部署 1.redis哨兵模式原理 redis主从复制的不足: 当主库宕机后,slave无法自己变成主库,进行数据的写入,每次都需要人为配置将从库变为主库才能进行数据写入,当主库修复后还需要人为配置导入...
    • redis哨兵模式的主要功能有哪些发布时间:2020-11-20 10:40:15来源:亿速云阅读:86作者:小新这篇文章主要介绍了redis哨兵模式的主要功能有哪些,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章...
    • 前言 - 单机Redis的风险与问题 如果Redis设计成单节点, 会有如下风险: 问题1: 机器故障 现象: 硬盘故障, 系统崩溃, 造成数据丢失, 很可能对业务造成灾难性打击 结论: 用户基本上会放弃使用Redis. 问题2: 容量...
    • redis哨兵模式配置

      2021-11-04 12:16:38
      哨兵是特殊的redis服务,不提供读写服务,主要用来监听redis节点,哨兵模式下,客户端第一次通过哨兵代理访问redis主节点,后续继续访问主节点; 不会每次都通过sentinel代理访问主节点,当redis主节点发生变化,...
    • Redis哨兵选举算法

      2021-04-01 17:21:13
      楔子:刚好在整Redis缓存高可用,阿汤哥的一句话Redis哨兵集群只有2个节点无法正常工作把俺给说晕了,网上也没找到比较通俗易懂的文章,所以自己理解了一下哨兵选举算法,为啥两个结点就是一个死局?。才疏学浅有...
    • redis哨兵模式讲解

      千次阅读 2019-09-09 16:52:23
      然后简要说明哨兵实现的基本原理;最后给出关于哨兵实践的一些建议。(注:文章内容基于 Redis 3.0 版本) 哨兵的作用和架构 哨兵的作用 在介绍哨兵之前,首先从宏观角度回顾一下 Redis 实现高可用相关的技术。 ...
    • Redis哨兵模式搭建

      2021-08-24 21:25:44
      原理哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。 这里的哨兵有两个作用 通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。 当哨兵监测到
    • Redis哨兵模式缺点

      2020-12-06 17:36:47
      哨兵模式的搭建过程见:...1. 启动哨兵模式: [root@localhost redis-5.0.10]# ps -ef | grep redis root 2916 1 0 03:19 ? 00:00:03 src/redis-server *:6380 root 3011 1 0

    空空如也

    空空如也

    1 2 3 4 5 ... 20
    收藏数 9,037
    精华内容 3,614
    关键字:

    redis哨兵模式选举原理

    redis 订阅