redis主从复制

话不多说,直接看案例:

  1. 环境准备,

    主从规划
    主节点:6380
    从节点:6381、6382
  • 运行3个redis数据库,达到 1主 2从的配置

    #主库  6379.conf
    port 6379
    daemonize yes
    pidfile /data/6379/redis.pid
    loglevel notice
    logfile "/data/6379/redis.log"
    dbfilename dump.rdb
    dir /data/6379 #从库 6380
    port 6380
    daemonize yes
    pidfile /data/6380/redis.pid
    loglevel notice
    logfile "/data/6380/redis.log"
    dbfilename dump.rdb
    dir /data/6380
    slaveof 127.0.0.1 6379 #从库 6381
    port 6381
    daemonize yes
    pidfile /data/6381/redis.pid
    loglevel notice
    logfile "/data/6381/redis.log"
    dbfilename dump.rdb
    dir /data/6381
    slaveof 127.0.0.1 6379
  1. 开启主从复制功能

    edis-cli info #查看数据库信息

    redis-cli info replication

  • 在6380 和6381数据库上 ,配置主从信息,通过参数形式修改配置,临时生效,注意要写入配置文件

    redis-cli -p 6380 slaveof 127.0.0.1 6379
    redis-cli -p 6381 slaveof 127.0.0.1 6379
  1. 模拟主从复制故障,手动切换master-slave身份

                1.杀死6379进程 ,干掉主库 
    
                2.手动切换 6381为新的主库,需要先关闭它的从库身份
    redis-cli -p 6381 slaveof no one 3.修改6380的新主库是 6381
    redis-cli -p 6380 slaveof 127.0.0.1 6381

哨兵高可用

  • redis-sentinel功能
  1. 环境准备

    • 三个redis数据库实例 ,配置好 1主 2从的配置
    #1
    6379.conf
    port 6379
    daemonize yes
    logfile "6379.log"
    dbfilename "dump-6379.rdb"
    dir "/var/redis/data/"
    #2
    6380.conf
    port 6380
    daemonize yes
    logfile "6380.log"
    dbfilename "dump-6380.rdb"
    dir "/var/redis/data/"
    slaveof 127.0.0.1 6379
    #3
    6381.conf
    port 6381
    daemonize yes
    logfile "6381.log"
    dbfilename "dump-6381.rdb"
    dir "/var/redis/data/"
    slaveof 127.0.0.1 6379
    • 三个redis哨兵进程,指定好,检测着谁,也是准备三个配置文件,内容如下
    sentinel-26379.conf
    port 26379
    dir /var/redis/data/
    logfile "26379.log" // 当前Sentinel节点监控 192.168.182.130:6379 这个主节点
    // 2代表判断主节点失败至少需要2个Sentinel节点节点同意
    // mymaster是主节点的别名
    sentinel monitor s21ms 0.0.0.0 6379 2 //每个Sentinel节点都要定期PING命令来判断Redis数据节点和其余Sentinel节点是否可达,如果超过30000毫秒30s且没有回复,则判定不可达
    sentinel down-after-milliseconds s21ms 20000 //当Sentinel节点集合对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,选出新的主节点,
    原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1
    sentinel parallel-syncs mymaster 1 //故障转移超时时间为180000毫秒
    sentinel failover-timeout mymaster 180000 #三个哨兵的配置文件,一模一样,仅仅是端口的区别
    #三个哨兵的配置文件,一模一样,仅仅是端口的区别
    #三个哨兵的配置文件,一模一样,仅仅是端口的区别
    sentinel-26380.conf #三个哨兵的配置文件,一模一样,仅仅是端口的区别
    sentinel-26381.conf
  2. 分别启动 三个redis数据库, 以及三个 哨兵进程 ,

    • 注意 ,哨兵第一次启动后,会修改配置文件,如果错了,得删除配置文件,重新写
    #配置文件在这里
    # 1
    sentinel-26379.conf
    port 26379
    dir /var/redis/data/
    logfile "26379.log"
    sentinel monitor s21ms 127.0.0.1 6379 2
    sentinel down-after-milliseconds s21ms 20000
    sentinel parallel-syncs s21ms 1
    sentinel failover-timeout s21ms 180000
    #加一个后台运行
    daemonize yes #2
    #仅仅是端口的不同
    sentinel-26380.conf
    #3
    sentinel-26381.conf
    • 启动哨兵
    redis-sentinel sentinel-26379.conf
    redis-sentinel sentinel-26380.conf
    redis-sentinel sentinel-26381.conf
  3. 验证哨兵是否正常

    redis-cli -p 26379 info sentinel
    
    # 正常结果master0:name=s21ms,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=3
  4. 干掉主库 ,检查主从切换状态

    kill -9 12749
    ps -ef|grep redis
    redis-cli -p 6380 info replication
    redis-cli -p 6381 info replication
    redis-cli -p 6380 info replication
    redis-cli -p 6381 info replication
  5. 如果从库变成了主库,那么你就已经完成了,哨兵高可用配置

redis主从复制与哨兵高可用的更多相关文章

  1. Part_five:Redis哨兵高可用

    redis哨兵高可用 1.redis-sentinel Redis-Sentinel是redis官方推荐的高可用性解决方案, 当用redis作master-slave的高可用时,如果master本身宕 ...

  2. Redis系列4:高可用之Sentinel(哨兵模式)

    Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 1 背景 从第三篇 Redis系列3:高可用之主从架构 ,我们知道,为Re ...

  3. Redis从出门到高可用--Redis复制原理与优化

    Redis从出门到高可用–Redis复制原理与优化 单机有什么问题? 1.单机故障; 2.单机容量有瓶颈 3.单机有QPS瓶颈 主从复制:主机数据更新后根据配置和策略,自动同步到备机的master/s ...

  4. Redis——(主从复制、哨兵模式、集群)的部署及搭建

    Redis--(主从复制.哨兵模式.集群)的部署及搭建 重点: 主从复制:主从复制是高可用redis的基础,主从复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复. 哨兵和集群都是 ...

  5. net core 实战之 redis 负载均衡和"高可用"实现

    net core 实战之 redis 负载均衡和"高可用"实现 1.概述 分布式系统缓存已经变得不可或缺,本文主要阐述如何实现redis主从复制集群的负载均衡,以及 redis的& ...

  6. Dubbo入门到精通学习笔记(十五):Redis集群的安装(Redis3+CentOS)、Redis集群的高可用测试(含Jedis客户端的使用)、Redis集群的扩展测试

    文章目录 Redis集群的安装(Redis3+CentOS) 参考文档 Redis 集群介绍.特性.规范等(可看提供的参考文档+视频解说) Redis 集群的安装(Redis3.0.3 + CentO ...

  7. redis主从复制和哨兵机制

    redis主从复制和哨兵机制 技术标签: redis 1.redis主从复制(master/slave模式) 主数据库可以进行读写操作,当写操作导致数据发生变化时会自动将数据同步给从数据库.而一般情况 ...

  8. Linux基于Docker的Redis主从复制、哨兵模式搭建

    本教程基于CentOS7,开始本教程前,请确保您的Linux系统已安装Docker. 1.使用docker下载redis镜像 docker pull redis 安装完成后,使用docker imag ...

  9. Docker Compose搭建Redis一主二从三哨兵高可用集群

    一.Docker Compose介绍 https://docs.docker.com/compose/ Docker官方的网站是这样介绍Docker Compose的: Compose是用于定义和运行 ...

随机推荐

  1. IMIX功能测试——网络测试仪实操

    在真实的网络环境中,用户产生的网络数据报文的长度并不是固定的,也就要求我们在评估DUT转发能力时,不能仅仅测试固定长度的报文,而是需要测试多种不同报文长度的组合. 信而泰RENIX测试仪中的iMIX报 ...

  2. RFC2889广播时延测试——网络测试仪实操

    一.简介 RFC 2889为LAN交换设备的基准测试提供了方法学,它将RFC 2544中为网络互联设备基准测试所定义的方法学扩展到了交换设备,提供了交换机转发性能(Forwarding Perform ...

  3. linux目录跳转的好武器z.sh

    转至:https://blog.csdn.net/molaifeng/article/details/14123123 中午刷微博时看到一篇有关z.sh的介绍. 众所周知,在linux系统中进入目录都 ...

  4. QT:Qt Creator快捷键与使用技巧

    功能 快捷键 解释 Switch Header/Source F4 在同名.h与.cpp文件间切换 Follow Symbol Under Cursor F2 跟踪光标下的变量或函数 变量:跟踪到变量 ...

  5. VMware:用Ubuntu创建一个新的虚拟机

    1)进入VMware,选择创建新虚拟机 2)安装ISO文件 3)各种名,密码 这里有可能出错: 原因是你输入的用户名和系统用户名重复了,修改一下就可以了 4)安装位置:这里可以是任意盘,但至少要有4G ...

  6. Python:glob

    学习自: (1)Python标准库glob模块_lianghe77的博客-CSDN博客_glob库 (2)Python:glob与os.listdir_鳄鱼的博客-CSDN博客 (3)python文件 ...

  7. Python数据类型的if判断

    Python数据类型的if判断 1.字符串判断 # -*- coding: utf-8 -*- ''' @Time : 2021/12/13 15:56 @Author : ziqingbaojian ...

  8. MyBatis动态 order by 排序不生效解决方法

    使用Mybatis在做一个项目时,发现需要动态的去做一个排序功能,于是乎有了下面XXXMapper.xml代码 <if test="order!=null and !order.isE ...

  9. JZ-009-变态跳台阶

    变态跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 题目链接: 变态跳台阶 代码 /** * 标题:变态跳台阶 * 题 ...

  10. oauth2.0密码模式详解

    oauth2.0密码模式 欢迎关注博主公众号「Java大师」, 专注于分享Java领域干货文章http://www.javaman.cn/sb2/oauth-password 如果你高度信任某个应用, ...