博客
关于我
Redis主从复制原理总结
阅读量:437 次
发布时间:2019-03-06

本文共 1099 字,大约阅读时间需要 3 分钟。

Redis 主从复制概述及注意事项

Redis 主从复制是一种高效的数据同步机制,旨在通过分担读写压力,提升系统的性能和可用性。本文将详细介绍 Redis 主从复制的工作原理及其相关注意事项。


全量同步与增量同步

Redis 主从复制分为两种模式:全量同步和增量同步。

全量同步

全量同步发生在从服务器首次连接到主服务器或因网络故障导致数据丢失时。具体过程如下:

  • 从服务器发送 SYNC 命令,主服务器启动 BGSAVE 生成 RDB 文件并记录后续写操作。
  • 主服务器完成 BGSAVE 后,将 RDB 文件发送给所有从服务器。
  • 从服务器加载 RDB 文件并清空旧数据。
  • 主服务器将 BGSAVE 期间的写操作缓冲发送给从服务器。
  • 从服务器完成加载后,主从服务器建立数据一致性。
  • 增量同步

    全量同步完成后,主从服务器进入增量同步模式。具体过程如下:

    • 主服务器执行写操作时,将命令直接发送给所有从服务器。
    • 从服务器接收命令并执行,确保数据与主服务器一致。

    Redis 主从同步策略

    同步顺序

    • 新连接的从服务器首先进行全量同步。
    • 全量同步完成后,进入增量同步模式。-Slave 可以在任何时候触发全量同步。

    注意事项

    • 多个从服务器断线时,需确保只有一台从服务器重启以避免主服务器 IO 瓶塞。
    • 在磁盘空间有限的情况下,可采用无盘复制(通过网络直接传输 RDB 文件)。

    Redis 主从复制注意事项

  • 主服务器持久化

    • 建议开启持久化以避免数据丢失。
    • 若不持久化,需禁止主服务器自动重启。
  • 密码配置

    • 若主服务器设置密码,需在从服务器配置中添加相应密码,否则复制失败。
  • 过期键处理

    • 主服务器负责发送删除命令,Slave 本地处理过期键。
  • 主从结构设计-Slave 不支持写操作,建议通过配置允许Slave 写操作,但需谨慎处理潜在影响。


  • 无磁盘复制

    Redis 从 2.8.18 版本起支持无磁盘复制。具体配置如下:

    • 使用 repl-diskless-sync 参数启动无磁盘复制。
    • 通过配置延迟时间 repl-diskless-delay,优化从服务器连接效果。

    配置建议

    从服务器配置

    slaveof 
    <主服务器ip>
    <主服务器端口>

    替换为实际主服务器 IP 和端口,例如:

    slaveof 192.168.1.1 6379

    无磁盘复制

    redis.conf 中启用无磁盘复制:

    replication-diskless-sync enabledreplication-diskless-sync-delay 5

    通过以上配置和注意事项,Redis 主从复制能够高效、可靠地管理数据同步,提升系统性能和可用性。

    转载地址:http://cqxyz.baihongyu.com/

    你可能感兴趣的文章
    OA项目之我的会议(查询)
    查看>>
    Object c将一个double值转换为时间格式
    查看>>
    object detection错误之Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
    查看>>
    object detection错误之no module named nets
    查看>>
    Object of type 'ndarray' is not JSON serializable
    查看>>
    Object Oriented Programming in JavaScript
    查看>>
    object references an unsaved transient instance - save the transient instance before flushing
    查看>>
    Object.keys()的详解和用法
    查看>>
    OBJECTIVE C (XCODE) 绘图功能简介(转载)
    查看>>
    Objective-C 编码规范
    查看>>
    Objective-C——判断对象等同性
    查看>>
    Objective-C之成魔之路【7-类、对象和方法】
    查看>>
    Objective-C享元模式(Flyweight)
    查看>>
    Objective-C以递归的方式实现二叉搜索树算法(附完整源码)
    查看>>
    Objective-C内存管理教程和原理剖析(三)
    查看>>
    Objective-C实现 Greedy Best First Search最佳优先搜索算法(附完整源码)
    查看>>
    Objective-C实现 jugglerSequence杂耍者序列算法 (附完整源码)
    查看>>
    Objective-C实现1000 位斐波那契数算法(附完整源码)
    查看>>
    Objective-C实现2 个数字之间的算术几何平均值算法(附完整源码)
    查看>>
    Objective-C实现2d 表面渲染 3d 点算法(附完整源码)
    查看>>