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

本文共 1102 字,大约阅读时间需要 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 enabled
    replication-diskless-sync-delay 5

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

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

    你可能感兴趣的文章
    No resource identifier found for attribute 'srcCompat' in package的解决办法
    查看>>
    no session found for current thread
    查看>>
    No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
    查看>>
    NO.23 ZenTaoPHP目录结构
    查看>>
    no1
    查看>>
    NO32 网络层次及OSI7层模型--TCP三次握手四次断开--子网划分
    查看>>
    NOAA(美国海洋和大气管理局)气象数据获取与POI点数据获取
    查看>>
    NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata
    查看>>
    node exporter完整版
    查看>>
    Node JS: < 一> 初识Node JS
    查看>>
    Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime(72)
    查看>>
    Node 裁切图片的方法
    查看>>
    Node+Express连接mysql实现增删改查
    查看>>
    node, nvm, npm,pnpm,以前简单的前端环境为什么越来越复杂
    查看>>
    Node-RED中Button按钮组件和TextInput文字输入组件的使用
    查看>>
    Node-RED中Switch开关和Dropdown选择组件的使用
    查看>>
    Node-RED中使用html节点爬取HTML网页资料之爬取Node-RED的最新版本
    查看>>
    Node-RED中使用JSON数据建立web网站
    查看>>
    Node-RED中使用json节点解析JSON数据
    查看>>
    Node-RED中使用node-random节点来实现随机数在折线图中显示
    查看>>