• Redis主从复制(读写分离)


    主从复制(读写分离):
    读在从库读,写在主库写。

    主从复制的好处:
    避免redis单点故障
    构建读写分离架构,满足读多写少的需求。

    主从架构:

    操作(启动实例,在一台机器上启动不同的实例,进行伪主从复制):
    1.复制配置文件,修改配置文件,启动6379,6380,6381三个实例;

    2.设置主从
    在redis中设置主从有两种方式:
    (1)在redis.conf中设置slaveof(永久)
    (2)使用redis客户端连接到服务,执行salveod命令(临时)

    3.查看主从信息,使用 INFO replication 命令。

    4.测试
    在主库写数据:

    在从库读数据:

    主从从架构:


    操作与主从架构类似,不再写出。

    从库只读:
    默认情况下redis充当slave角色的只能读不能写。

    可以在配置文件中开启非只读:slave-read-only no

    主从复制的原理:
    当从库与主库建立主从关系后,会像主库发送sync命令;
    主库接收到sync命令后会在后台开始保存快照(rdb过程),并将期间接收到的写命令缓存起来;
    当快照完成后,主redis会将快照文件和缓存的写命令一起发送给从redis;
    从redis接收到后,会载入快照和执行收到的缓存的写命令;
    之后,每当主redis接收到写命令后都会发送给从redis,从而保证数据的一致。

    无磁盘复制:
    如果主库所在的服务器的磁盘io能力较差的话,那么主从复制就会遇到瓶颈。的redis2.8.18版本后引入了无磁盘复制。
    原理:
    redis在与从库进行复制初始化的时候不再将快照保存在磁盘,而是通过网络直接发送给从库,从而避免了io性能差的问题。
    开启无磁盘复制:repl-diskless-sync yes

    主从架构出现宕机怎么办?
    如果在主从复制架构中遇到宕机的话,一般要分情况:
    1.从redis宕机
    这种情况相对来说比较简单,只需将从redis重启,重启后从redis会自动加入到主从架构中,完成数据的同步。而且从redis2.8开始还实现了主从断线后恢复的情况下实现增量更新的功能。
    2.主redis宕机
    需要完成两步,第一步是在从redis中执行SLAVEOF NO ONE 命令,断开主从关系并且提升为主库继续提供服务;第二步是将主库重新启动,执行SLAVEOF命令,将其设置为其他库的从库,这时数据就会更新回来。这个过程一般使用哨兵来监听。

  • 相关阅读:
    pcs7 opc 连接问题
    nuget 多个程序引用同一个库时,当个这个库更新时,引用的程序都要跟新,否则会在运行时出错
    nuget update FileConflictAction
    a
    C#版本
    .NET Framework版本与CLR版本之间的关系
    c# 将一种数组类型转成另一种数组类型
    tfs 清除缓存,在需要时
    java枚举和仿枚举
    java反射的用法
  • 原文地址:https://www.cnblogs.com/ericz2j/p/11110598.html
Copyright © 2020-2023  润新知