《Redis开发与运维》笔记-复制

  • 配置
    • 建立复制
    • 断开复制
    • 安全性
    • 传输延迟
  • 原理
    • 复制过程
    • 数据同步
    • 全量复制
    • 部分复制

配置

建立复制

建立复制有三种方式:

  1. 在配置文件中加入配置,跟随Redis启动生效
slaveof <masterip> <masterport>
  1. 在redis-server启动命令后加入 “–slaveof masterip masterport”。
redis-server --slaveof 127.0.0.1 6379
  1. 在客户端直接使用命令,slaveof masterip masterport
slaveof 127.0.0.1 6379

断开复制

直接执行命令断开复制,slaveof no one

slaveof no one

Redis可以直接通过slaveof命令切换主节点
Redis在切换主节点过程中,会先清理删除本地旧数据,在进行复制操作。

安全性

一般在设置Redis配置中,我们会通过设置requirepass参数进行密码验证。所以在从节点复制主节点就需要配置参数masterauth来配置主节点密码。
在复制过程中,一般需要配置从节点为只读属性,防止修改从节点数据导致主从节点数据不一致,通过设置参数slave-read-only

slave-read-only yes

传输延迟

复制过程中,会存在网络延迟等问题。Redis提供了一个配置可以设置进行优化

//默认下此配置为关闭
repl-disable-tcp-nodelay no

当关闭时,主节点产生的命令数据无论大小都会及时地发送给从节点,这样主从节点的延迟会变小,但是会增加网络带宽消耗。
当开启时,主节点会合并较小的TCP数据包从而减少带宽。默认发送时间间隔取决于Linux的内核,一般默认为40毫秒。

原理

复制过程

数据同步

数据同步过程分为全量同步和部分同步两种方式。通过使用psync命令操作同步。

psync runId offset

psync命令运行需要组件支持:

  1. 主从节点各自复制偏移量。
  2. 主节点复制积压缓冲区。
  3. 主节点运行id。

主节点运行id每次启动都会变更,可以采用 debug reload命令执行重启,不会变更run_id

psync命令运行流程

参数offset是当前从节点保存的复制偏移量,如果是第一次参数复制,则默认值是-1
如果主节点回复 +FULLRESYNC 那么从节点将触发全量复制
如果主节点回复 +CONTINUE,从节点触发部分复制
如果主节点回复 -ERR 说明主节点不识别psync命令。可能是主节点版本过低。

全量复制

全量复制流程图:

部分复制

部分复制流程图:

《Redis开发与运维》笔记-复制相关推荐

  1. Redis开发与运维笔记_1 初识2 API

    目录 概述 第1章 初识Redis 1.1 盛赞Redis 1.2 Redis特性 1.3 配置.启动.操作.关闭Redis 第2章 API的理解和使用 2.1 预备 2.1.1 全局命令 2.1.2 ...

  2. Redis开发与运维 必备-电子书

    Redis开发与运维电子书 fulei出版 链接: https://pan.baidu.com/s/12rlHhOKP7_72GE8a74lN1g 密码: eep2 复制这段内容后打开百度网盘手机Ap ...

  3. <Redis开发与运维>一书阅读笔记记录

    文章目录 前言 第1章:初始redis 盛赞redis redis特性 redis使用场景 第2章:API的理解和使用 预备知识 全局命令 数据结构和内部编码 单线程架构 字符串 命令 内部编码 典型 ...

  4. 「Redis开发与运维」读书笔记

    第一章 初识Redis Redis的8个重要特性 速度快 内存存储数据 C语言实现 单线程架构,避免多线程竞争问题 Redis源码优化好 基于键值对的数据结构服务器 Redis 值可支持多种数据结构, ...

  5. 读书笔记:redis开发与运维 基础篇

     redis特性    1>速度快:redis所有数据都是存放在内存中,是redis速度快的主要原因,是有c编写,一般来说用c编写的程序距离操作系统近,执行速度更快,非阻塞I/O,使用epoll ...

  6. 【Redis】《Redis 开发与运维》笔记-Chapter12-开发运维的“ 陷阱”

    十二.开发运维的" 陷阱" 1.Linux配置优化之内存分配控制 1)vm.overcommit_memory Linux操作系统对大部分申请内存的请求都回复yes,以便能运行更多 ...

  7. 《Redis开发与运维》读书笔记--初识Redis(一)

    目录 盛赞Redis Redis特性 redis使用场景 redis可以做什么? redis不可以做什么? 关于用好redis的两点建议 本章重点回顾 写在前面: 想必在写项目的过程中,我们很多时候都 ...

  8. Redis 开发与运维

    Getting Start 高性能 性能优势的体现 C语言实现的内存管理 epoll的I/O多路复用技术+IO连接/关闭/读写通过事件实现异步的非阻塞IO TCP协议 单线程架构,不会因为高并发对服务 ...

  9. Redis理解内存《Redis开发与运维读书笔记》

    文章目录 内存的消耗 内存划分 内存管理 内存优化 内存的消耗 可以使用info memory 查看内存消耗. 内存划分 对象内存 = sizeof(key) + sizeof(value) 应避免使 ...

  10. 《Redis开发与运维》各章重点回顾

    第 1 章 初识 Redis Redis 8个特性:速度快.基于键值对的数据结构服务器.功能丰富.简单稳定.客户端语言多.持久化.主从复制.支持高可用和分布式. Redis 不是万金油,有些场景不适合 ...

最新文章

  1. matlab朴素贝叶斯手写数字识别_TensorFlow手写数字识别(一)
  2. sqlmap 相关参数
  3. Angular InjectionToken的一个具体使用例子
  4. ISO语言代码和国家代码+Locale常量+ISO货币符号
  5. .NET Core Web API:您需要了解的最少知识(第2部分,共2部分)
  6. mybatis之xml中日期时间段查询的sql语句
  7. 魔术方法 :__callStatic( )实例详解
  8. 2013年6月12日星期三
  9. 091118 T 数组的继承
  10. Ajax回调函数中return不生效问题
  11. Kerberos认证模型(c语言实现)
  12. 2021ccpc广州站总结
  13. python修改文件内容_Python之文件处理-批量修改md文档内容-Go语言中文社区
  14. Typora Syntax
  15. 借助gdb调试glibc代码学习House of Orange
  16. Markdown - Emoji表情大全
  17. DailyFi - 9.17|Solana 去中心化收益聚合器 Francium 和 Solana 钱包 Slope 正式合作
  18. 时隔一年多,我胡汉三又归来了,将持续更新的博客
  19. 菜鸟网络业务支撑平台
  20. 一起来学习在Ubuntu上安装Budgie桌面

热门文章

  1. 登录验证----滑块/拼图碎片/随机num
  2. DirectX修复工具(DirectX Repair)修复工具V4.0增强版
  3. 手动调整 HP ML350 Gen9 服务器风扇转速
  4. 【综合篇】Web前端性能优化原理问题
  5. 组装台式计算机配置清单,diy之家 - 2017组装电脑配置清单_电脑diy主机配置推荐...
  6. 车站计算机系统sc英文,【地铁小百科】自动售检票系统概述
  7. 用cmd 查看本机的IP地址
  8. 模拟电子技术基础简明课程(第三版)思维导图
  9. java网页版斗地主_JAVA控制台版斗地主
  10. 大数据技能练习之爬虫