Redis哨兵机制,一主二从

注:Redis哨兵切换,建议一主多从

一、一主二从

  教程步骤:https://www.cnblogs.com/zwcry/p/9046207.html

二、哨兵配置(sentinel.conf)

  cd /usr/local/redis-ms/  

  1.创建哨兵目录

    mkdir -p ./sentinel/26001/tmp

    cp /usr/local/redis/sentinel.conf ./sentinel/26001/

  2.修改./sentinel/.conf

    cd /usr/local/redis-ms/sentinel/

    vim ./26001/sentinel.conf

    #修改如下键值对

    # bind 127.0.0.1 192.168.1.1#注释掉或者值为0.0.0.0

    protected-mode no#关闭保护模式

    port 26001#端口号

    daemonize yes#后台运行

    dir /usr/local/redis-ms/sentinel/26001/tmp#解除挂载信息目录

    sentinel monitor mymaster 192.168.194.131 6381 1#设置 主名称 ip地址 端口号 参入选举的哨兵数

    sentinel down-after-milliseconds mymaster 3000#sentinel心跳检测主3秒内无响应,视为挂掉,开始切换其他从为主

    sentinel parallel-syncs mymaster 1#每次最多可以有1个从同步主。一个从同步结束,另一个从开始同步。

    sentinel failover-timeout mymaster 18000#主从切换超时时间

三、启动哨兵配置

  1.先启主从redis

    /usr/local/redis/src/redis-server /usr/local/redis-ms/6381/redis.conf

    /usr/local/redis/src/redis-server /usr/local/redis-ms/6382/redis.conf

    /usr/local/redis/src/redis-server /usr/local/redis-ms/6383/redis.conf

    ps -ef|grep redis

    如图已经启动

    

    且信息正确

    /usr/local/redis/src/redis-cli -p 6381

    info

    

  2.启动哨兵

    /usr/local/redis/src/redis-sentinel /usr/local/redis-ms/sentinel/26001/sentinel.conf

    ps -ef|grep redis

    如图已经启动

    

    且信息正确

    /usr/local/redis/src/redis-cli -p 26001

    info

    

  3.测试

    1)主6381停掉后变成从,原有的两个从,有一个升级为主。

      /usr/local/redis/src/redis-cli -p 6381 shutdown

      /usr/local/redis/src/redis-cli -p 26001

      info

      

    2)6381再次启动后,依然是从

      /usr/local/redis/src/redis-server /usr/local/redis-ms/6381/redis.conf

      /usr/local/redis/src/redis-cli -p 6381

      info

      

五、哨兵集群

  cd /usr/local/redis-ms/sentinel/

  1.复制26001

    cp -r 26001 26002

  2.修改26002/sentinel.conf

    vim 26002/sentinel.conf

    #将文本中26001替换为26002

    :%s/26001/26002/g

  3.启动

    /usr/local/redis/src/redis-sentinel /usr/local/redis-ms/sentinel/26002/sentinel.conf

    info

    /usr/local/redis/src/redis-cli -p 26002

    

6.哨兵开机启动

  注:redis开机启动参照https://www.cnblogs.com/zwcry/p/9046207.html  

  1.创建sh脚本目录

    mkdir /usr/local/redis-ms/sentinel/script

    cd /usr/local/redis-ms/sentinel/script/

  2.编辑start.sh

    vim start.sh   

#!/bin/sh
/usr/local/redis/src/redis-sentinel /usr/local/redis-ms/sentinel//sentinel.conf
/usr/local/redis/src/redis-sentinel /usr/local/redis-ms/sentinel//sentinel.conf

  3.编辑stop.sh

    vim stop.sh

#!/bin/sh
/usr/local/redis/src/redis-cli -p shutdown
/usr/local/redis/src/redis-cli -p shutdown

  4.编辑restart.sh

    vim restart.sh   

#!/bin/sh
systemctl stop redis-sentinel
systemctl start redis-sentinel

  5.编写redis-sentinel.service

    cd /usr/lib/systemd/system/

    vim redis-sentinel.service

[Unit]
Description=redis-sentinel
After=redis-ms.service
[Service]
Type=forking
ExecStart=/usr/local/redis-ms/sentinel/script/start.sh
ExecStop=/usr/local/redis-ms/sentinel/script/stop.sh
ExecReload=/usr/local/redis-ms/sentinel/script/restart.sh
[Install]
WantedBy=multi-user.target

    #建议启动redis服务后,再启动哨兵  

  6.命令行

    改变权限

      chmod 777 redis-sentinel.service

      chmod 777 /usr/local/redis-ms/sentinel/script/*

    进程服务重加载

      systemctl daemon-reload

    开机启动哨兵

      systemctl enable redis-sentinel.service

    启动哨兵

      systemctl start redis-sentinel.service

    关闭哨兵

      systemctl stop redis-sentinel.service

    重启哨兵

      systemctl restart redis-sentinel.service

备注:哨兵集群服务自主关联响应,如果需要更多哨兵集群,按照26002的方式复制26003...26006即可

  
  

    

redis 哨兵机制环境搭建的更多相关文章

  1. Redis哨兵机制的实现及与SpringBoot的整合

    1. 概述 前面我们聊过Redis的读写分离机制,这个机制有个致命的弱点,就是主节点(Master)是个单点,如果主节点宕掉,整个Redis的写操作就无法进行服务了. 为了解决这个问题,就需要依靠&q ...

  2. Redis集群环境搭建实践

    0 Redis集群简介 Redis集群(Redis Cluster)是Redis提供的分布式数据库方案,通过分片(sharding)来进行数据共享,并提供复制和故障转移功能.相比于主从复制.哨兵模式, ...

  3. Windows下Lua+Redis 断点调试环境搭建==Linux下类似

    Lua+Redis 断点调试环境搭建 windows环境,使用Redis,写lua脚本头疼的问题之一不能对脚本断点调试,google加上自己的摸索,终于搞定. 1.下载ZeroBraneStudio, ...

  4. 关于Redis哨兵机制,7张图详解!

    写在前面 之前有位朋友去面试被问到Redis哨兵机制,这道题其实很多小伙伴都应该有被问到过!本文将跟大家一起来探讨如何回答这个问题!同时用XMind画了一张导图记录Redis的学习笔记和一些面试解析( ...

  5. Redis 哨兵机制

    概述 由一个或多个 Sentinel(哨兵)实例组成的 Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的 ...

  6. 【redis】 linux 下redis 集群环境搭建

    Redis集群 (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) 127.0.0.1:63791 ...

  7. redis哨兵机制讲解

    原文链接:https://blog.csdn.net/yswKnight/article/details/78158540 一.什么是哨兵机制? 答:Redis的哨兵(sentinel) 系统用于管理 ...

  8. 2.Redis集群环境搭建

    转载请出自出处:http://www.cnblogs.com/hd3013779515/ 一.基本概念 1.redis集群是一个可以在多个节点之间进行数据共享的设施.redis集群提供了以下两个好处1 ...

  9. redis集群环境搭建的错误

    安装redis集群需要版本号在3.0以上 redis-cluster安装前需要安装ruby环境 搭建集群需要使用到官方提供的ruby脚本. 需要安装ruby的环境. yum -y install ru ...

随机推荐

  1. Linux下识别所有Android设备的方法

    修改/etc/udev/rules.d/51-android.rules文件. 方法一: 参考Google文档 SUBSYSTEM=="usb", ATTR{idVendor}== ...

  2. Cglib 与 JDK动态代理的运行性能比较

    都说 Cglib 创建的动态代理的运行性能比 JDK 动态代理能高出大概 10 倍,今日抱着怀疑精神验证了一下,发现情况有所不同,遂贴出实验结果,以供参考和讨论. 代码很简单,首先,定义一个 Test ...

  3. iOS电话等中断事件的开始和结束通知

    #import "ViewController.h" #import <AVFoundation/AVFoundation.h> @interface ViewCont ...

  4. 停机问题(英语:halting problem)是逻辑数学中可计算性理论的一个问题。通俗地说,停机问题就是判断任意一个程序是否能在有限的时间之内结束运行的问题。该问题等价于如下的判定问题:是否存在一个程序P,对于任意输入的程序w,能够判断w会在有限时间内结束或者死循环。

    htps://baike.baidu.com/item/停机问题/4131067?fr=aladdin 理发师悖论:村子里有个理发师,这个理发师有条原则是,对于村里所有人,当且仅当这个人不自己理发,理 ...

  5. 使用代理*** and kubeadm init错误

    没有代理 可申请AWS免费账户,创建EC2实例,搭建Shadowsocks服务器. 配置代理客户端 参考链接:https://www.zybuluo.com/ncepuwanghui/note/954 ...

  6. Python Cookbook 笔记--12章并发编程

    <Python Cookbook(第3版)中文版> 1.队列queue的有些方法是线程不安全的,在多线程中最好别用 2.需要限制一段代码的并发访问量时,用信号量.不要把信号量当做普通的锁来 ...

  7. 《MYSQL必知必会2

    60.NULL是没有值,空串是一个有效值61.主键只能使用不允许未NULL值的列62.每个表只允许一个auto_increment列63.不允许使用函数作为默认值,只支持常量64.InnoDB 支持事 ...

  8. pandas1

    https://www.cnblogs.com/nxld/p/6058591.html

  9. SQL语句中的正则表达式

    正则表达式 REGEXP_LIKE执行正则表达式匹配 SELECT FIRST_NAME FROM EMPLOYEES WHERE REGEXP_LIKE(FIRST_NAME,'^al(an|yss ...

  10. 2018/03/14 每日一个Linux命令 之 ln

    ln 链接命令 -- 类似Windows的快捷方式,实际等于建立了一个文件同步的链接,我想,MAC上面复制一个文件到另一个路径,特别快,它可能就是建立了一个链接. -- 在通俗点讲,就是你创建链接之后 ...