精华内容
下载资源
问答
  • 主要介绍了SpringBoot结合Redis哨兵模式的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 哨兵模式三台一主一从一哨兵
  • redis哨兵配置文件.zip

    2020-04-02 19:11:06
    redis哨兵配置文件:3个Sentinel节点、2个从节点、1个主节点 下载完成后,默认密码是12345678,只需修改slaveof masterip port即可运行。 redis版本最好是大于3.0
  • SpringRedis哨兵配置

    2018-12-24 14:43:13
    SpringRedis哨兵配置,包括RedisTemplete、CacheManger
  • Spring整合Redis哨兵

    2017-12-20 21:15:57
    Spring整合Redis哨兵及RedisTemplate,并且实现了redis的事务处理
  • 此脚本文件用于zabbix监控redis哨兵时收集redis sentinel监控信息。
  • spring整合redis哨兵模式,内含redis连接池,哨兵模式,json序列化,redis crud封装
  • 采用的哨兵集群监控一主两从
  • 本文是我花了一周时间整理出来的Redis哨兵模式(sentinel)学习总结,包括部署过程,主从复制、读写分离、主从切换等都已验证通过,可以作为完整手册使用.有需要的朋友,请拿走不谢.
  • Redis哨兵配置文件

    2020-12-24 15:54:07
    Redis哨兵配置文件
  • Redis哨兵主从模式+keepalived
  • 解决方法:修改redis-sentinel.conf 配置文件,将最少投票数改为1,(大于3个哨兵的,建议投票数为:哨兵数/2 -1 不为别的,我只怕redis抽风!! ) 注:官方文档并没有说需要【(哨兵数/2)-1 】,是我自己设置并解决我...

    主从复制和哨兵模式的搭建,请参考其他文章,很简单,而且别人写的很详细,这里主要解决哨兵模式无法切换的问题。
    目前我这边的配置为:
    一主二从三哨兵
    出现的问题主要有:

    问题1:没有看到切换master节点的信息:

    在这里插入图片描述
    解决方法:修改redis-sentinel.conf 配置文件,将最少投票数改为1,(大于3个哨兵的,建议投票数为:哨兵数/2 -1 不为别的,我只怕redis抽风!! ) 注:官方文档并没有说需要【(哨兵数/2)-1 】,是我自己设置并解决我当前的问题的,官方文档只说如果哨兵数过少,则故障转移是不会产生的,也就是说,一两个哨兵,并不是高可用配置,当master挂掉后,不一定会给你进行故障转移。:
    详见:https://redis.io/topics/sentinel
    在这里插入图片描述

    问题二:哨兵选举后,无法真正地切换。

    在这里插入图片描述

    无法切换,有几种情况:
    1-redis保护模式开启了
    2-端口没有放开;
    3-master密码和从密码不一致。
    4-master节点的redis.conf没有添加masterauth

    建议处理方法如下:
    每一台机子下的:redis.conf配置文件,还有哨兵的redis-sentinel.conf 配置文件修改成:

    bind 0.0.0.0
    protected-mode no
    

    2-各个哨兵,端口要能相互telnet 对应的ip 端口
    查看想开的端口是否已开:firewall-cmd --query-port=26379/tcp
    添加指定需要开放的端口:firewall-cmd --add-port=26379/tcp --permanent
    重载入添加的端口:firewall-cmd --reload
    查询指定端口是否开启成功:firewall-cmd --query-port=26379/tcp
    返回yes即可

    3–master密码和从密码不一致
    由于哨兵配置的时候没有配置从密码,只配置了master的密码,那么问题来了,如果master挂掉了,哨兵sentinel切换master的时候,怎么去修改其他节点的配置信息呢。实际上,哨兵是拿master的密码去认证的,所以,我们在配置redis的时候,建议redis的账号密码一致(至少主账号的master-auth密码和从节点的一致)

    4-master节点也要设置masterauth,避免当master重启后无法变成新master节点的从节点

    各位参考以上的配置进行操作即可。如果还有其他的配置需要注意的,欢迎留言

    展开全文
  • 在docker环境下一步一步描述了整个搭建过程,主要包括服务器划分、单节点搭建、哨兵安装、密码认证等操作,你值得拥有
  • Redis哨兵模式 部署Sentinel Redis哨兵模式 安装Redis 部署Redis主从 配置为128的从 设置主从后重启 部署Sentinel 三台Sentinel配置文件是一样的,编辑配置文件 vi /etc/sentinel.conf #内容如下...

    Linux学习20190410

    Redis哨兵模式

    安装Redis
    在这里插入图片描述
    部署Redis主从
    在这里插入图片描述
    配置为128的从
    在这里插入图片描述
    设置主从后重启

    部署Sentinel

    三台Sentinel配置文件是一样的,编辑配置文件

    vi /etc/sentinel.conf #内容如下
    #端口
    port 26379

    #是否后台启动
    daemonize yes

    #pid文件路径
    pidfile /var/run/redis-sentinel.pid

    #日志文件路径
    logfile “/var/log/sentinel.log”

    #定义工作目录
    dir /tmp

    #定义Redis主的别名, IP, 端口,这里的2指的是需要至少2个Sentinel认为主Redis挂了才最终会采取下一步行为
    sentinel monitor mymaster 127.0.0.1 6379 2

    #如果mymaster 30秒内没有响应,则认为其主观失效
    sentinel down-after-milliseconds mymaster 30000

    #如果master重新选出来后,其它slave节点能同时并行从新master同步数据的台数有多少个,显然该值越大,所有slave节
    ##点完成同步切换的整体速度越快,但如果此时正好有人在访问这些slave,可能造成读取失败,影响面会更广。最保守的设置
    ##为1,同一时间,只能有一台干这件事,这样其它slave还能继续服务,但是所有slave全部完成缓存更新同步的进程将变慢。
    sentinel parallel-syncs mymaster 1

    #该参数指定一个时间段,在该时间段内没有实现故障转移成功,则会再一次发起故障转移的操作,单位毫秒
    sentinel failover-timeout mymaster 180000

    #不允许使用SENTINEL SET设置notification-script和client-reconfig-script。
    sentinel deny-scripts-reconfig yes
    启动服务
    启动顺序:主Redis -> 从Redis -> Sentinel1/2/3

    Sentinel 启动命令
    redis-sentinel /etc/sentinel.conf
    Sentinel操作
    sentinel master mymaster

    输出被监控的主节点的状态信息

    sentinel slaves mymaster

    查看mymaster的从信息

    sentinel sentinels mymaster

    查看其他Sentinel信息
    测试
    停止Redis从

    停止Redis主

    停止sentinel1

    展开全文
  • Redis哨兵模式 Redis主从模式会出现master挂了就不能用了的状态 什么是哨兵 Sentinel(哨兵)是用于监控Redis集群中Master状态的工具,是Redis高可用解决方案之一.哨兵可以监控一个或多个master服务. 当某个master服务...

    Redis哨兵模式

    Redis主从模式会出现master挂了就不能用了的状态

    什么是哨兵

    Sentinel(哨兵)是用于监控Redis集群中Master状态的工具,是Redis高可用解决方案之一.哨兵可以监控一个或多个master服务.
    当某个master服务挂了之后,会把slave升级为master.

    配置哨兵

    配置sentinel.conf步骤

    1. 在解压包里找到sentinel.conf
    2. 复制这个配置文件到指定的目录下(我的是:/usr/local/redis)
    3. 修改配置文件

    修改配置文件sentinel.conf


    # 端口
    port 26379
    
    # pid路径(自己指定,别忘了创建目录,要不会报错)
    pidfile /var/run/redis-sentinel.pid
    
    # 工作路径(自己指定)
    dir /tmp
    
    # 是否后台运行
    daemonize yes
    
    
    # 是否远程访问, 自己设置ip (这里我就全开放了)
    protected-mode no
    
    
    
    # 这是日志保存路径
    logfile /usr/local/redis/redis-sentinel.log
    

    继续修改配置文件

    # 设置哨兵
    sentinel `自己主节点的名字`  `主节点的ip`  `主节点的端口号` `2(2个以上的哨兵确认才能认为master挂了)`
    
    # 设置密码
    sentinel auth-pass  `刚刚上面设置的主节点名字`  `密码是多少`
    
    
    # master被哨兵认定失效的毫秒数
    sentinel down-after-milliseconds `刚刚上面设置的主节点名字` `认定失效的毫秒数`
    
    # 选举新master后,剩余slave并行同步数据的个数
    sentinel parallel-syncs `刚刚上面设置的主节点名字`  `1`
    
    # 主备切换的超时时间,哨兵故障切换超过这个时间,会由其他哨兵执行
    sentinel failover-timeout `刚刚上面设置的主节点名字` `毫秒数`
    

    如果发现数据不同步

    切换master后发现数据不同步,检查一下redis.conf中的`masterauth`是否设置的密码
    

    哨兵信息检查命令

    # 查看xxx下的master节点信息 
    sentinel master xxx
    # 查看xxx下的slaves节点信息 
    sentinel slaves xxx
    # 查看xxx下的哨兵节点信息 
    sentinel sentinels xxx
    
    # xxx 为设置的主节点名称
    

    SpringBoot集成Redis哨兵模式

    spring: 
        redis: 
        database: 1 
        password: xxx 
        sentinel: 
            master: 主节点设置的名字 
            nodes: 192.168.1.1:26379,192.168.1.2:26379,192.168.1.3:26379
    
    展开全文
  • Redis主从集群搭建及容灾部署哨兵sentinel Redis主从集群搭建及容灾部署 哨兵sentinel 目录 1. Redis安装 2. Redis主从结构搭建 3. Redis容灾部署哨兵sentinel 4. Redis常见问题 5. 参考 redis安装 1.1. liunx环境...
  • Redis哨兵集群配置

    2018-05-18 09:25:50
    Redis哨兵集群配置的详细步骤。在监控主从结构时,所有的哨兵进程都会调用info 命令,查看当前主从状态,一旦发现返回结果中master宕机了,所有哨兵将会进行投票选举(过半选举),选出替代主节点的节点继续执行对外服务
  • 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哨兵模式搭建

    2021-08-24 21:25:44
    哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。 这里的哨兵有两个作用 ...
  • Redis哨兵机制原理详解

    千次阅读 2021-01-15 23:53:31
    哨兵架构下client端第一次从哨兵找出redis的主节点,后续就直接访问redis的主节点,不会每次都通过sentinel代理访问redis的主节点,当redis的主节点发生变化,哨兵会第一时间感知到,并且哨兵会早主从模式的从节点....
  • 解决Redis哨兵集群哨兵之间无法感应问题 集群哨兵无法感应带来的影响 当Redis服务集群中的Master节点宕机的时候,Redis自动无法进行主从切换。 Reis集群内容 一个Master、两个Slave、三个Sentinel。 sentinel相关的...
  • 搭建Redis高可用集群的哨兵模式(Redis-Sentinel)的实例配置,可以为 Redis 容灾+高可用 应用场景提供解决方案Demo
  • redis哨兵机制

    千次阅读 2020-04-19 15:43:47
    1、哨兵的介绍sentinal,中文名是哨兵哨兵redis集群架构中非常重要的一个组件,主要功能如下:(1)集群监控,负责监控redis master和slave进程是否正常工作。(2...
  • Redis哨兵

    2018-02-02 21:12:33
    官方提供的高可用方案,可用用它管理多个Redis服务实例。 编译后产生redis-sentinel程序文件。 Redis Sentinel是一个分布式系统,可以在一个架构中运行多个Sentinel进程。 二 启动Sentinel 将src目录下产生...
  • Java实现Redis哨兵

    2020-07-06 20:08:53
    Java版Redis哨兵 前言: 本文将采用文字+代码的方式,讲解redis版哨兵的实现,所有代码都将写在一个类中,每个属性和方法都会结合文字加以说明。 1. 哨兵(Sentinel)主要功能如下: 1、不时的监控redis节点是否...
  • Redis分片+Redis哨兵

    2020-08-16 16:18:29
    Redis分片机制 Redis分片前提:Redis可以通过修改内存的大小实现数据的保存,但是不能设置的过大 解决方案:可以采用Redis分片机制来实现内存数据的扩容,使用Redis分片的主要目的就是为了内存扩容,解决海量数据的存储...
  • redis哨兵部署文件(1主2从),需要去除自动生成的sentinel known-replica和sentinel known-sentinel mymaster属性,修改IP地址即可使用
  • Redis哨兵模式 什么是Redis哨兵模式 Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息,并...
  • 本篇文章介绍docker swarm搭建三主三从Redis哨兵(Sentinel)模式 环境 IP HOSTNAME label redis port sentinel port 172.16.0.106 cluster-0001 master 6379 26379 172.16.0.31 cluster-0002 slave1 6379...
  • springboot整合Redis哨兵

    2020-04-02 23:41:51
    1.1SpringBoot整合Redis哨兵 1.1.1入门案例 /** * 哨兵测试 * 1.配置redis的节点数据集合 * 2.利用哨兵机制连接redis节点. * 3.用户通过哨兵 实现缓存操作. * * 参数1: masterName */ @Test public void ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,747
精华内容 16,298
关键字:

redis哨兵

redis 订阅