当前位置: 首页 > news >正文

Redis进阶之高可用

一、redis的高可用方案

 1、主从模式:从会向主库同步数据库,从库与主库数据一样
    特点:master库挂掉,需要自己修复、手动指定新的master,可用性不高
    使用场景:基本不用

2、哨兵模式:就是在主从基础之上,附加了一套哨兵集群,哨兵集群用来监控并自动恢复主从
    特点:
        一主多从
        主挂掉后,哨兵集群会发现并从剩余的从库里选出一个新主,然后其他从都指向新主                      哨兵在主从的基础上做的,所以哨兵的缺点就是主从的缺点----》数据冗余
        
    使用场景:数据量不是很多、当集群规模不是很大、需要自动容错容灾的时候使用


3、cluster集群模式
    既有主从恢复的功能,又有一个非常重要的特点:数据会均匀分布(基于slot槽)

    使用场景:数据量比较大、QPS 要求较高的时候使用。

### 高可用方案本身支持读写分离,不需要中间件或者程序自己指定

二、主从模式

redis主从特点(类似mysql的主从)
    1、一主多从、主负责写、从负责读

    2、没有故障切换(主从恢复)

    3、一主节点可以有多个从节点
       但是一个从节点只能指唯一一个主节点(废话)

   
redis主从同步流程

    mysql主从:
        1、先全量同步数据
        2、再利用binglog日志进行增量同步
                
    redis主从:
        1、先全量
            基于rdb文件
        2、再增量
            主库把缓冲区内的增量语句发给从库,来进行增量同步

redis主从部署

规划:
        一主两从               
        master库:192.168.71.112 6379
        salve库1:192.168.71.113 6379
        salve库2:192.168.71.114 6379


主库配置:#yum安装 /etc/redis/redis.conf
    cat > /usr/local/redis/conf/redis.conf << 'EOF'
    daemonize yes
    bind 0.0.0.0
    port 6379
     
    masterauth 123456      #连主库用的密码
    requirepass 123456     #自己的密码
    #考虑后续主从可能会发生切换,建议无论主从都进行配置且保证密码相同 
    EOF

    systemctl restart redis

       

 从库配置:
    cat > /usr/local/redis/conf/redis.conf << 'EOF'
    # (1)修改
    daemonize yes
    bind 0.0.0.0
    port 6379
    # (2)增加
    # 配置主节点的ip和端口
    slaveof 192.168.71.112 6379

    # 从redis2.6开始,从节点默认是只读的
    slave-read-only yes

    # 主节点有登录密码,则必须指定
    masterauth 123456
    # 建议在从上也设置与主一模一样的密码,这与后续你切主会方便一些,因为无论哪个节点都是一样的密码
    requirepass 123456
    EOF

    systemctl restart redis

查看主从状态
info replication 
# 注意:redis 6.x版本与redis3.x版本不兼容
你用centos7.9默认yum安装的就是redis3.x版本,你用centos9默认yum安装的是redis6.x版

master彻底挂了,进行手动切换指定slave1为主
slaveof no one  # 将 slave1 变成新的 master(slave1)
slaveof 192.168.71.114 6379  # 将机器的主节点指向的这个新的 master(slave2) 
补充:
执行命令slaveof no one命令,可以关闭从服务器的复制功能。同时原来同步的所得的数据集都不会被丢弃。

 redis主从同步流程详解

    1、先全量
        从库启动后会发送sync请求,主库收到后会制作快照数据,发送给从库导入
    
    2、再增量
        在全量同步的过程中,主库会一直记录增量的语句到自己的缓冲区内
        待全量全量同步完成,主库会把缓冲区内的语句发给从库,从库进行增量导入
        
    3、后续的过程:
        从-------同步--------》主


                
三、哨兵模式

定义

1、介绍(哨兵是用来管理主从的机制)
哨兵模式是为了解决主从模式无法自动故障切换的问题而诞生的
哨兵模式是在主从模式的基础之上做的、附加了一套哨兵集群
哨兵集群通常是奇数个超过半数同意master挂掉,最终确定master是挂掉的

所以主从模式有数据冗余问题,哨兵模式当然也有


2、哨兵节点是什么
    哨兵节点是特殊的redis服务,命令名为redis-sentinel,不提供读写服务,主要用来监控redis-server。


3、哨兵节点都做什么?
    (1)监控(ping/pong机制)-----》所有的哨兵节点都去监控
    (2)自动故障切换 -----------》哨兵节点中的老大来做故障切换
        超过半数的哨兵都认为当前master挂掉了,就开始故障切换
        从剩余的从里选出一个新主,然把其余的从都指向新主
    
    (3)通知
        应用程序---------发布订阅-----------》哨兵集群------管理------》主从    
        哨兵集群一旦切过主,就会把新主的地址推送给应用程序
        

4、哨兵模式下,应用程序应该如何对接redis
    见上


5、应用与哨兵之间:基于发布订阅来获取redis集群状态

部署

6、哨兵集群部署
6.1 规划:
    一主两从:    
        master库:192.168.71.112 6379

相关文章:

  • 操作系统学习笔记第1章 操作系统概述(灰灰题库
  • SAR ADC 的常见架构
  • Spring Task
  • 结课作业自选01. 内核空间 MPU6050 体感鼠标驱动程序(二)(完整实现流程)
  • 服务器硬盘分类
  • 服务器磁盘按阵列划分为哪几类
  • 【Vue】将响应式对象转为非响应式对象
  • (37)服务器增加ipv6配置方法
  • 浪潮Inspur服务器产品线概述
  • van-picker实现日期时间选择器
  • fatal error: uuid/uuid.h: No such file or directory 编译问题修复。
  • linux杀死进程自身
  • 准备好,开始构建:由 Elasticsearch 向量数据库驱动的 Red Hat OpenShift AI 应用程序
  • linux二进制安装mysql:
  • STM32之模数转换器(ADC)
  • 第三次中医知识问答模型微调
  • FFmpeg解码器配置指南:为什么--enable-decoders不能单独使用?
  • 【CSS】九宫格布局
  • Windos11家庭版安装本地安全策略
  • 线程池线程数配置
  • 凡科网做网站如何推广/搜索引擎优化seo的英文全称是
  • 专业网站设计方案公司/网络网站推广
  • 衡水注册公司流程和费用/独立站seo
  • wordpress+资源站模板/百度助手app下载
  • 网站建设设计哪家好/seo站外推广有哪些
  • 如何免费建一个wordpress/seo推广方法