精华内容
下载资源
问答
  • 哨兵模式就是用一个或者多个哨兵实例组成的,对redis的所有节点进行监控,每隔一段时间会向主节点发送命令,如果主节点没有回应,就是出现了故障,主节点出现故障后,会将从节点中选一个升为主节点,确保数据库能够...

    emmmmmm,这个其实是28号完成的,但博客今天才开,思来想去还是把昨天的给补上吧,按住顺序来吧!

    1、redis的安装

    redis数据库的安装并不难,首先安装好依赖,因为redis是C语言编写,需要安装gcc来编译

    yum install gcc-c++ -y(安装gcc)

    执行上面的命令就安装完了gcc,接下来我们需要一个目录,用来安装redis

    我是安装在/usr/local/redis里面的,所以直接执行下面的代码就可以创建一个目录

    mkdir /usr/local/redis

    当然,还得需要下载redis,下面贴出官网,可能需要魔法上网

    https://redis.io/

    我是在官网下的5.0.5版本的,不知道是不是最新的

    下载来后上传到/usr/local,用下面的一系列操作即可完成安装

    cd /usr/local  先进入到这个目录

    tar -zvxf redis-5.0.5.tar.gz  解压出来

    cd redis-5.0.5  进入到解压的目录

    make  开始编译

    make PREFIX=/usr/local/redis install  安装到/usr/local/redis

    这样只是安装好了,还需要配置conf,把安装包里面的conf复制过去就行了

    cd /root/redis-5.0.5

    cp redis.conf  /usr/local/redis/bin/ (复制配置文件)

    然后还需要修改conf文件中的一些配置

    vi  /usr/local/redis/bin/redis.conf(修改/usr/local/redis/bin/redis.conf)

    因为默认情况下,redis不是后台运行,我们需要找到daemonize,把值改成yes

    还有databases后面的值,表示多少个实例,我改成了32

    启动的话,用redis-server就可以,完整的执行命令是下面的

    /usr/local/redis/bin/redis-server  /usr/local/redis/bin/redis.conf

    但是每次开启或者关闭都要输入这么长,太麻烦了,我干脆就把redis的bin目录添加到了path

    所以我们每次启动就只需要下面这样就可以了

    redis-server  /usr/local/redis/bin/redis.conf

    使用redis-cli就可以测试是否正常启动了

    当然,可以修改下/etc/rc.local,让redis开机就启动

    2、主从复制

    emmm,最开始看到这个一脸懵逼,后来看了几篇文章后有了个大概,我用自己的话来表达下哈

    主从复制就是建立一个和主数据库一模一样的数据库,而这个数据库就叫做从数据库,每次主数据库更新数据只是把更新的几行复制给从数据库,从数据库只做读操作,写操作都交给主数据库,这就是读写分离,使用主从复制和读写分离的好处就是可以减少服务器的负担,哪怕主数据库在写入大量数据占用资源时,也丝毫不影响前台读数据的速度,同时当主数据库挂掉的时候,从数据库也依然能够工作,不会影响正常使用。

    这段话是我自己理解的,当然不够深刻,望谅解哈,接下来配置主从复制了。

    把原先的redis.conf再拷贝一份,改个名字,就叫做redis6380.conf

    cp /usr/local/redis/bin/redis.conf /usr/local/redis/bin/redis6380.conf

    一般来说要多个服务器,但我电脑如果开多个虚拟机有点吃不消,就在一台虚拟机上完成也是可以的,要注意修改端口号

    修改redis6380.conf,在里面加入slaveof 192.168.200.128 6379    

    这个ip是我虚拟机的ip,如果是看我这个教程配置的改成自己的ip(emmmmmm,写的这么烂真的有人看么)

    别忘了要把port改成6380,接下来的启动顺序就是先启动主数据库,然后启动从数据库,这样主从复制便完成了

    3、哨兵模式

    emmmmm,还是先了解什么是哨兵模式,然后再开始动手

    哨兵模式就是用一个或者多个哨兵实例组成的,对redis的所有节点进行监控,每隔一段时间会向主节点发送命令,如果主节点没有回应,就是出现了故障,主节点出现故障后,会将从节点中选一个升为主节点,确保数据库能够正常工作。

    首先创建哨兵模式的sentinel.conf文件,和端口号对应,所以名称取为sentinel-26379.conf比较容易区分

    下面则是配置内容

    port 26379
    daemonize yes
    logfile "26379.log"
    dir "./"
    sentinel monitor mymaster 192.168.200.128 6379 2
    sentinel down-after-milliseconds mymaster 30000
    sentinel parallel-syncs mymaster 1
    sentinel failover-timeout mymaster 15000
    sentinel auth-pass mymaster 123
    bind 192.168.200.128 127.0.0.1

    当然还有从数据库的,也就是配置从节点

    port 26380
    daemonize yes
    logfile "26380.log"
    dir "./"
    sentinel monitor myslave 192.168.200.128 6379 2
    sentinel down-after-milliseconds myslave 30000
    sentinel parallel-syncs myslave 1
    sentinel failover-timeout myslave 15000
    sentinel auth-pass myslave 123
    bind 192.168.200.128 127.0.0.1

    两个配置好后,只需要执行下面2句命令即可启动哨兵模式

    redis-sentinel sentinel-26379.conf

    redis-sentinel sentinel-26380.conf

    关于配置文件一些字段的解释

    sentinel monitor <master-name> <ip> <redis-port> <quorum>
    告诉sentinel去监听地址为ip:port的一个master,这里的master-name可以自定义,quorum是一个数字,指明当有多少个sentinel认为一个master失效时,master才算真正失效

    sentinel auth-pass <master-name> <password>
    设置连接master和slave时的密码,注意的是sentinel不能分别为master和slave设置不同的密码,因此master和slave的密码应该设置相同。

    sentinel down-after-milliseconds <master-name> <milliseconds>
    这个配置项指定了需要多少失效时间,一个master才会被这个sentinel主观地认为是不可用的。 单位是毫秒,默认为30秒

    sentinel parallel-syncs <master-name> <numslaves>
    这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行 同步,这个数字越小,完成failover所需的时间就越长,但是如果这个数字越大,就意味着越 多的slave因为replication而不可用。可以通过将这个值设为 1 来保证每次只有一个slave 处于不能处理命令请求的状态。

    sentinel failover-timeout <master-name> <milliseconds>
    failover-timeout 可以用在以下这些方面:     
    1. 同一个sentinel对同一个master两次failover之间的间隔时间。   
    2. 当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的master那里同步数据时。    
    3.当想要取消一个正在进行的failover所需要的时间。    
    4.当进行failover时,配置所有slaves指向新的master所需的最大时间。不过,即使过了这个超时,slaves依然会被正确配置为指向master,但是就不按parallel-syncs所配置的规则来了。

    转载于:https://www.cnblogs.com/huajidafahao/p/11266480.html

    展开全文
  • Redis系列 Redis系列——第一章 Redis配置文件 Redis系列——第二章 ...Redis系列——第七章 Redis开启哨兵模式 文章目录Redis系列Redis系列——第一章 Redis配置文件Redis系列——第二章 Redis数据类型以及基本使用R

    Redis系列

    Redis系列——第一章 Redis配置文件

    Redis系列——第二章 Redis数据类型以及基本使用

    Redis系列——第三章 Redis开启事务并实现乐观锁

    Redis系列——第四章 Redis发布订阅模式

    Redis系列——第五章 Redis持久化策略RDB与AOF

    Redis系列——第六章 Redis主从同步

    Redis系列——第七章 Redis开启哨兵模式


    一、Redis哨兵模式

    1、为什么要哨兵模式?

         哨兵模式一般出现在主从同步开启,由于从机默认只读不可写的特性,导致了如果主机宕机,整个redis集群都不可用,这是无法容忍的,虽然我们可以手动设置从机升级为主机但是存在时效性,这样会导致数据的丢失,以及整个服务项目的性能。所以为了解决Redis主机宕机问题,Redis想出了哨兵机制。
    总结:

    1. 为了Redis高可用
    2. 自动故障迁移(Automatic failover)

    2、什么是哨兵模式?

          打仗的时候都会在前线设置哨兵盯着,一旦发现情况不对就立马汇报。Redis的哨兵也是这个作用,不过Redis的哨兵盯住的不是其他,而是主机,Redis的哨兵启动后会一直盯住master主机 一旦发现master挂了,会进行一个下线判断,如果判定master下线,那么就会重新在从机中推举一个出来成为新的主机,就算挂了的主机重新启动也只能成为新任老大的小弟。
    在这里插入图片描述

    3、如何开启

    1、创建sentinel.conf文件

    在这里插入图片描述

    2、内容增加

    # sentinel monitor 被监控的主机名(自定义) 被监控的主机IP 被监控的数据库端口号 投票数
    # 投票数:表示主机挂掉后,从机投票选举主机,得票数达到多少后成为主机
    sentinel monitor myredis 127.0.0.1 6379 1
    #如果被监控的主机需要密码  加入sentinel auth-pass 被监控的主机名 密码
    #sentinel auth-pass myredis  123
    

    3、使用命令启动

    Linux:

    redis-sentinel  kconfig/sentinel.conf
    

    Windows:

    redis-server.exe sentinel.conf --sentinel
    

    在这里插入图片描述
    启动后sentinel.conf文件会增加一些配置

    sentinel myid b2c17cf276ce21e73d542f56402cd4998b5c357b
    # Generated by CONFIG REWRITE
    port 26379
    dir "F:\\Redis-x64-3.2.100"
    sentinel monitor myredis 127.0.0.1 6379 1
    sentinel config-epoch myredis 0
    sentinel leader-epoch myredis 2
    sentinel current-epoch 2
    

    参数解读

    # Example sentinel.conf
     
    # 哨兵sentinel实例运行的端口 默认26379
    port 26379
     
    # 哨兵sentinel的工作目录
    dir /tmp
     
    # 哨兵sentinel监控的redis主节点的 ip port 
    # master-name  可以自己命名的主节点名字 只能由字母A-z、数字0-9 、这三个字符".-_"组成。
    # quorum 配置多少个sentinel哨兵统一认为master主节点失联 那么这时客观上认为主节点失联了
    # sentinel monitor <master-name> <ip> <redis-port> <quorum>
      sentinel monitor mymaster 127.0.0.1 6379 2
     
    # 当在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
    
    
    

    4、连接sentinel的客户端查看信息

    Windows 打开redis的目录 进入命令行 执行下面命令

    redis-cli.exe -p 26379 
    sentinel masters
    

    在这里插入图片描述

    4、哨兵的集群配置

    同开启步骤类似,需要多少个哨兵就创建多少份.conf文件,但是注意文件名不要重复推荐使用端口名命名

    5、哨兵模式的整个过程

    1、流程图

    在这里插入图片描述

    2、流程分析

    1. 每个Sentinel以每秒钟一次的频率向它所知的Master,Slave以及其他 Sentinel 实例发送一个PING命令。
    2. 如果一个实例(instance)距离最后一次有效回复PING命令的时间超过 own-after-milliseconds选项所指定的值,则这个实例会被Sentinel标记为主观下线
    3. 如果一个Master被标记为主观下线,则正在监视这个Master的所有 Sentinel要以每秒一次的频率确认Master的确进入了主观下线状态。
    4. 当有足够数量的Sentinel(大于等于配置文件指定的值)在指定的时间范围内确认Master的确进入了主观下线状态,则Master会被标记为客观下线
    5. 在一般情况下,每个Sentinel 会以每10秒一次的频率向它已知的所有Master,Slave发送 INFO 命令。
    6. 当Master被Sentinel标记为客观下线时,Sentinel 向下线的 Master 的所有Slave发送INFO命令的频率会从10秒一次改为每秒一次。
    7. 若没有足够数量的Sentinel同意Master已经下线,Master的客观下线状态就会被移除。 若Master重新向Sentinel 的PING命令返回有效回复,Master的主观下线状态就会被移除。

    3、下线类别分析

    • 主观下线
      所谓主观下线(Subjectively Down, 简称 SDOWN)指的是单个Sentinel实例对服务器做出的下线判断,即单个sentinel认为某个服务下线(有可能是接收不到订阅,之间的网络不通等等原因)。
      主观下线就是说如果服务器在down-after-milliseconds给定的毫秒数之内, 没有返回 Sentinel 发送的 PING 命令的回复, 或者返回一个错误, 那么 Sentinel 将这个服务器标记为主观下线(SDOWN )。
      sentinel会以每秒一次的频率向所有与其建立了命令连接的实例(master,从服务,其他sentinel)发ping命令,通过判断ping回复是有效回复,还是无效回复来判断实例时候在线(对该sentinel来说是“主观在线”)。
      sentinel配置文件中的down-after-milliseconds设置了判断主观下线的时间长度,如果实例在down-after-milliseconds毫秒内,返回的都是无效回复,那么sentinel回认为该实例已(主观)下线,修改其flags状态为SRI_S_DOWN。如果多个sentinel监视一个服务,有可能存在多个sentinel的down-after-milliseconds配置不同,这个在实际生产中要注意。
    • 客观下线
      客观下线(Objectively Down, 简称 ODOWN)指的是多个 Sentinel 实例在对同一个服务器做出 SDOWN 判断, 并且通过 SENTINEL is-master-down-by-addr 命令互相交流之后, 得出的服务器下线判断,然后开启failover。
      客观下线就是说只有在足够数量的 Sentinel 都将一个服务器标记为主观下线之后, 服务器才会被标记为客观下线(ODOWN)。
      只有当master被认定为客观下线时,才会发生故障迁移。
      当sentinel监视的某个服务主观下线后,sentinel会询问其它监视该服务的sentinel,看它们是否也认为该服务主观下线,接收到足够数量(这个值可以配置)的sentinel判断为主观下线,既任务该服务客观下线,并对其做故障转移操作。
      sentinel通过发送 SENTINEL is-master-down-by-addr ip port current_epoch runid,(ip:主观下线的服务id,port:主观下线的服务端口,current_epoch:sentinel的纪元,runid:*表示检测服务下线状态,如果是sentinel 运行id,表示用来选举领头sentinel)来询问其它sentinel是否同意服务下线。
      一个sentinel接收另一个sentinel发来的is-master-down-by-addr后,提取参数,根据ip和端口,检测该服务时候在该sentinel主观下线,并且回复is-master-down-by-addr,回复包含三个参数:down_state(1表示已下线,0表示未下线),leader_runid(领头sentinal id),leader_epoch(领头sentinel纪元)。
      sentinel接收到回复后,根据配置设置的下线最小数量,达到这个值,既认为该服务客观下线。
      客观下线条件只适用于主服务器: 对于任何其他类型的 Redis 实例, Sentinel 在将它们判断为下线前不需要进行协商, 所以从服务器或者其他 Sentinel 永远不会达到客观下线条件。只要一个 Sentinel 发现某个主服务器进入了客观下线状态, 这个 Sentinel 就可能会被其他 Sentinel 推选出, 并对失效的主服务器执行自动故障迁移操作。
    展开全文
  • 开启一主二从的模式 在从机中创建一个配置文件 叫 sentinel.conf sentinel.conf 里面的内容是sentinel monitor mastername 内网IP(127.0.0.1) 6379 1 说明: mastername 监控主数据的名称,自定义 ...

    先开启一主二从的模式

     

     

    从机中创建一个配置文件 叫 sentinel.conf

    sentinel.conf 里面的内容是 sentinel monitor mastername  内网IP(127.0.0.1)  6379  1

    说明:

    • mastername 监控主数据的名称,自定义
    • 127.0.0.1:监控主数据库的IP;
    • 6379:端口
    • 1∶最低通过票数
       

    把日志写入指定文件

    ./ redis-sentinel ./ sentinel.conf >sent. log &

    通过查看info replication 是看不到哨兵的信息的,只有查看进程才能看到

    查看进程

    发现sentinel的进程,就是哨兵进程

     

    模拟主机宕机

    杀死主机6379端口进程 : kill -9  

    查看刚刚配置的从机的信息

    发现它已经变成了主机master

    查看另外一台没有配置的从机,使用info replication查询得到主机的信息:6381端口

    他自己仍然是从机

     

    如果此时再启动之前的主机:端口号为6379的redis,主机的身份还会给6379吗?

    答案:不会

    演示如下图,我们可以看到,6379端口,现在成为了从机,主机是6381

     

     

     

     

    展开全文
  • masterauth qwer1234 ##当开启哨兵模式时需要添加,以免slave升级为master时不能同步 编辑slave配置文件 [root@liyg redis_replication]# vim 7001_master/redis.conf #端口改为7002 dir /app/redis_...

    一、部署环境
    系统:centos7
    通过在Linux系统上启动两个不同的redis实例来完成主从集群的部署
    yum源已部署

    二、redis的下载与安装
    1、下载:官网下载
    2、安装
    创建/app/目录,redis安装在/app/目录下

    [root@liyg ~]# mkdir /app
    [root@liyg ~]# cd /usr/local/src/
    [root@liyg src]# ls
    redis-4.0.11.tar.gz
    [root@liyg src]# tar zxf redis-4.0.11.tar.gz -C /app/
    [root@liyg~]# yum install -y gcc*
    [root@liyg ~]# cd /app/redis-4.0.11/
    [root@liyg redis-4.0.11]# make
    [root@liyg redis-4.0.11]# make install
    
    3、通过配置不同端口,来启动不同实例
    
    [root@liyg ~]# mkdir /app/redis_replication
    [root@liyg ~]# mkdir /app/redis_replication/7001_master
    [root@liyg ~]# mkdir /app/redis_replication/7002_slave
    [root@liyg ~]# cp /app/redis-4.0.11/redis.conf /app/redis_replication/7001_master/
    [root@liyg ~]# cp /app/redis-4.0.11/redis.conf /app/redis_replication/7002_slave/

    编辑master配置文件

    [root@liyg ~]# cd /app/redis_replication/
    [root@liyg redis_replication]# vim 7001_master/redis.conf
        #修改端口6379为7001
        dir /app/redis_replication/7001_master
        pidfile /var/run/redis_7001.pid
        logfile "/app/redis_replication/7001_master/7001.log"
        protected-mode no   ##yes改为no  关闭安全模式
        daemonize yes    ##以守护进程方式启动
        requirepass qwer1234   ##开启密码认证
        masterauth qwer1234    ##当开启哨兵模式时需要添加,以免slave升级为master时不能同步

    编辑slave配置文件

    [root@liyg redis_replication]# vim 7001_master/redis.conf
        #端口改为7002
        dir /app/redis_replication/7002_slave
        pidfile /var/run/redis_7002.pid
        logfile "/app/redis_replication/7002_slave/7002.log"
        protected-mode no
        masterauth qwer1234   ##同步master时所需密码
        requirepass qwer1234   ##开启密码认证
        slaveof 127.0.0.1 7001  ##新增

    启动redis

    [root@liyg redis_replication]# redis-server 7001_master/redis.conf 
    2521:C 03 Dec 15:50:54.660 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    2521:C 03 Dec 15:50:54.661 # Redis version=4.0.11, bits=64, commit=00000000, modified=0, pid=2521, just started
    2521:C 03 Dec 15:50:54.661 # Configuration loaded
    [root@liyg redis_replication]# redis-server 7002_slave/redis.conf 
    2530:C 03 Dec 15:51:07.037 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    2530:C 03 Dec 15:51:07.037 # Redis version=4.0.11, bits=64, commit=00000000, modified=0, pid=2530, just started
    2530:C 03 Dec 15:51:07.037 # Configuration loaded

    4、验证

    [root@liyg redis_replication]# redis-cli -p 7001 -a qwer1234 info replication
    role:master
    connected_slaves:1
    slave0:ip=127.0.0.1,port=7002,state=online,offset=70,lag=1
    
    [root@liyg redis_replication]# redis-cli -p 7002 -a qwer1234 info replication
    master_host:127.0.0.1
    master_port:7001
    ...

    在master创建KEY查看slave是否同步

    [root@liyg ~]# redis-cli -p 7001 -a qwer1234 set k1 t1
    OK
    [root@liyg ~]# redis-cli -p 7002 -a qwer1234 get k1
    "t1"

    至此,redis主从配置完成

    三、配置redis主从哨兵模式

    [root@liyg app]# cp redis-4.0.11/sentinel.conf redis_replication/
    [root@liyg app]# vim redis_replication/sentinel.conf 
    
    protected-mode no  ##关闭安全模式
    sentinel monitor mymaster 127.0.0.1 7002 1 
    sentinel auth-pass mymaster qwer1234 ##当redis主从集群有密码验证时开启

    启动

     [root@liyg app]# redis-sentinel redis_replication/sentinel.conf 

    验证

    关闭master7001端口,查看7002端口是否通过哨兵升级为master

    [root@liyg redis_replication]# redis-cli -p 7001 -a qwer1234 shutdown

    当master关闭时,可看到哨兵的输出内容

    ...
    2138:X 04 Dec 09:59:15.625 # +failover-end master mymaster 127.0.0.1 7001
    2138:X 04 Dec 09:59:15.625 # +switch-master mymaster 127.0.0.1 7001 127.0.0.1 7002
    2138:X 04 Dec 09:59:15.625 * +slave slave 127.0.0.1:7001 127.0.0.1 7001 @ mymaster 127.0.0.1 7002
    2138:X 04 Dec 09:59:18.645 # +sdown slave 127.0.0.1:7001 127.0.0.1 7001 @ mymaster 127.0.0.1 7002
    
    [root@liyg redis_replication]# redis-cli -p 7002 -a qwer1234 info replication
    
    role:master
    connected_slaves:0

    可以看到原来的slave7002已升级为master,再次启动7001实例

    [root@liyg redis_replication]# redis-server 7001_master/redis.conf 

    [root@liyg redis_replication]# redis-cli -p 7001 -a qwer1234 info replication

    role:slave
    master_host:127.0.0.1
    master_port:7002

    7001已变为7002的从库,至此,验证成功

    转载于:https://blog.51cto.com/12244079/2325738

    展开全文
  • 查阅多方资料后,才发现昨天写的配置哨兵模式开启是错的,尴尬。。。 今天重新来配置一下,当然为了避免出现问题,先理清下思路,整理好信息 哨兵模式监控的节点最少三个,昨天监控了2个是不够的,所以我又再一次...
  • redis之哨兵模式

    2019-07-31 14:59:30
    文章目录redis之哨兵模式配置开启测试 redis之哨兵模式 ​ 如果主结点挂掉,哨兵们会推选取领头哨兵,领头哨兵会从从结点中推选出主结点。使用整个系统正常运行。如果前主结点恢复连接,它只能成为从结点。哨兵会像...
  • 连接哨兵模式redis

    2021-01-08 20:58:51
    开启哨兵模式时在.env中添加以下配置: </li></ul> <pre><code> REDIS_SENTINEL_ENABLE = true REDIS_MASTER_NAME = mymaster REDIS_SENTINEL_NODE = 127.0.0.1:26379;127.0.0.2:26380;127.0.0.3:26381 ...
  • 对于Redis的使用之前都是停留在简单的主从类型上,由于要实现Redis的高可用,今天学习了Redis的哨兵模式。 记录一下哨兵模式的配置使用方法。 1、首先,配置一下使用的环境。 实现哨兵这里开启了3个redis-server...
  • 11_Redis 哨兵模式

    2021-02-04 14:02:57
    哨兵模式:给集群分配一个站岗的 哨兵的作用:是对Redis系统的运行情况监控 它是一个独立进程,它的功能: 监控主数据库和从数据库是否运行正常 主数据出现故障后自动将从数据库转化为主数据库 如果主机宕,开启...
  • 什么一些介绍就不介绍了,可以看一下连接,比较详细,初次接触,当时很迷茫,特纠结整合时候服务器是否需要开启哨兵模式,因为在整合的时候确认了master,结果很显然是需要的 先配置服务器(本地)哨兵模式,直接从...
  • 故障表现哨兵只存在两个的时候,当哨兵模式的redis主节点挂掉以后,业务组件不能切换到新主节点故障原因redis哨兵依旧认为旧主为主节点,没有触发failover故障原因定位哨兵集群部署方式:1主1从,3哨兵哨兵初始配置项...
  • Redis(八)–Redis哨兵模式 这篇博客主要内容包括: 一、哨兵模式 二、 Redis Sentinel 架构 三、安装与配置: 3.1 配置开启主从节点 3.2 配置开启sentinel监控主节点(sentinel是特殊的redis) 四、java...
  • 文章目录Redis 主从复制与哨兵模式redis主从复制开启主从复制的三种方式关闭主从复制主从复制的作用主从复制工作原理全量复制和部分复制redis哨兵模式哨兵模式配置文件sentinel.conf哨兵模式搭建哨兵节点支持的命令...
  • redis sentinel 哨兵模式

    2019-09-26 12:00:15
    1.配置开启主从节点 2.配置开启sentinel监控主节点。 3.多机部署(实验单机进行的) 主节点 # 启动 redis-server redis-7000.conf # 配置 port 7000 daemonize yes pidfile /var/run/redis-7000.pid logfile '7000....
  • 修改完成以后保存退出开启服务即可 验证: 在主服务器上登录本机使用 info 命令或者role 命令登录查看状态 在从服务器上登录本机使用 info 命令或者role 命令登录查看状态 在主服务器上创建键
  • 哨兵模式理想状态 需要>=3个redis服务,>=3个redis哨兵,每个redis服务搭配一个哨兵. 本例以3个redis服务为例: 一开始需要1个主redis (192.168.0.2), 2个从redis服务 (192.168.0.3 , 192.168.0.4). 配置...
  • 一、Docker模拟redis主从模式 //下载redis镜像 docker pull redis //开启master容器 docker run -it --name master -d -p 30000:6379 redis /bin/bash //拷贝redis.conf docker cp redis.conf master:/data/redis....
  • redis作为当前炙手可热的NOSQL系统,本身就... 这里使用三台服务器,每台服务器上开启一个redis-server和redis-sentinel服务,redis-server端口为6379,redis-sentinel的端口为6800,修改默认端口是安全的第一步。...
  • 1 数据丢失情况 1.1 异步复制导致的数据丢失 因为master ->...此时哨兵可能就会认为master宕机了,然后开启选举,将其他slave切换成了master。 这个时候,集群里就会有两个master,也就是所谓的脑裂。 此时虽然
  • 开启远程连接   使用阿里云服务器 142.19.35.253 为阿里局域网ip 172.19.35.283 为网ip 部署机器的ip bind 142.19.35.253 开启远程连接 protected-mode no 设置主节点,如果需要远程连接 此处的ip需要使用...
  • 一 一主二从 配从(库)不配主(库) 每次与master断开之后,都需要重新连接,除非你...(2)开启daemonize yes (3)pid文件名字 (4)指定端口 (5)log文件名字 (6)dump.rdb名字 2.一主二从问题汇总 1 切...
  • redis使用了哨兵模式以后,可以保持良好的健壮性,主节点宕机以后,哨兵可以做故障转移,使集群继续工作,故障转移后新的主节点需要通知客户端(客户系统),否者客户端就没法感知主节点,不能写入数据。 2. 原理 ...
  • 搭建一主二从三哨兵 作用:读写分离 容灾恢复 启动多台redis容器,修改配置文件中的端口号以及日志文件名称 其实对于容器,可以不修改端口,只需启动容器时映射不同的端口即可 1 修改master和slave的配置文件 master...
  • 主从复制模式设置: 首先开启三个reids容器: 分别使用宿主机的6381 6382 6382 端口, [root@iz2zei9wv79ob7vwy7y1jcz redis]# docker run -p 6381:6379 --name redis001 -v $PWD/data:/data -d redis redis-server ...
  • 学习Redis时配置sentinel.conf 文件,执行时出现问题:...最终就哨兵模式开启成功了。 找了半天原因也没有找到为什么之前的配置文件出错。可能是Bug,如果大家知道原因欢迎评论。 小白一个,虚心学习!!!
  • Redis Sentinel即采用Sentinel得方案开启哨兵模式,在此模式下主redis服务崩溃其余从redis(哨兵)会随机选出一个转为主库,这样既可以保证安全性可靠性以实现高可用 为了方便我们采用docker容器来实现Sentinel哨兵 ...
  • 故障表现哨兵只存在两个的时候,当哨兵模式的redis主节点挂掉以后,业务组件不能切换到新主节点故障原因redis哨兵依旧认为旧主为主节点,没有触发failover故障原因定位哨兵集群部署方式:1主1从,3哨兵哨兵初始配置项...
  • 启动3台redis 6379,6380,6381 cp 多个redis.conf文件 ...开启daemonize yes PID文件名字 端口 log文件名字 dump.rdb名字requirepass 密码 更改从机的masterauth密码 和requirepass密码一致....
  • 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 本文环境:CentOS7.3, Redis ...
  • 配置一个Master和两个slave为例: 1、首先复制三份redis.conf,分别命名redis6379.conf、redis6380.... 开启daemonize yes pid文件名字 如:pidfile /var/run/redis_6379.pid 指定端口:port 6379 log文件名字...

空空如也

空空如也

1 2 3 4 5
收藏数 98
精华内容 39
关键字:

哨兵模式开启