• Redis主从同步与故障切换,有哪些坑?


    Redis的主从同步机制不仅可以让从库服务更多的读请求,分担主库的压力,而且还能在主库发生故障时,进行主从库切换,提供高可靠服务。

    不过,在实际使用主从机制的时候,我们很容易踩到一些坑。这节课,我就向你介绍3个坑,分别是主从数据不一致、读到过期数据,以及配置项设置得不合理从而导致服务挂掉。

    一旦踩到这些坑,业务应用不仅会读到错误数据,而且很可能会导致Redis无法正常使用,我们必须要全面地掌握这些坑的成因,提前准备一套规避方案。不过,即使不小心掉进了陷阱里,也不要担心,我还会给你介绍相应的解决方案。

    好了,话不多说,下面我们先来看看第一个坑:主从数据不一致。

    主从数据不一致

    主从数据不一致,就是指客户端从从库中读取到的值和主库中的最新值并不一致。

    举个例子,假设主从库之前保存的用户年龄值是19,但是主库接收到了修改命令,已经把这个数据更新为20了,但是,从库中的值仍然是19。那么,如果客户端从从库中读取用户年龄值,就会读到旧值。

    那为啥会出现这个坑呢?其实这是因为主从库间的命令复制是异步进行的

    具体来说,在主从库命令传播阶段,主库收到新的写命令后,会发送给从库。但是,主库并不会等到从库实际执行完命令后,再把结果返回给客户端,而是主库自己在本地执行完命令后,就会向客户端返回结果了。如果从库还没有执行主库同步过来的命令,主从库间的数据就不一致了。

    那在什么情况下,从库会滞后执行同步命令呢?其实,这里主要有两个原因。

    一方面ÿ

  • 相关阅读:
    多线程之原子整数和原子引用
    IPD各阶段交付文档
    工厂设计模式
    <深度学习基础> Batch Normalization
    TCP服务端和客户端编程流程+代码详细解析(linux:c语言)
    【C++类和对象】定义 | 封装 | 访问限定符 | 作用域 | 对象模型 | this指针
    Java注解与反射系列——利用反射进行数据自动填充(代替Mybatis-plus的自动填充)
    什么是反射
    分布式版本控制git学习笔记
    HTTP 协议
  • 原文地址:https://blog.csdn.net/weixin_36691991/article/details/125850691