Redis 使用 RDB 持久化方式的过程

  1. 定时触发: RDB 持久化是通过设置一个定时触发的机制来进行的。管理员可以配置 Redis 在经过一定时间间隔或执行了一定数量的写操作后触发 RDB 持久化。这个配置通常在 Redis 的配置文件中进行,可以通过 savesave 900 1 这样的配置项来设定。

    bash 复制代码
    save 900 1 # 在900秒内如果有至少1个key被改变,则触发RDB持久化
  2. 创建数据快照: 当触发条件满足时,Redis 开始创建一个数据快照。这个数据快照是当前内存中所有数据的一个拷贝。

  3. 创建临时文件: Redis 在创建数据快照的同时,会创建一个临时文件用于存储这个数据快照。这样可以确保在持久化过程中不会影响到当前正在运行的 Redis 服务器。

  4. 写入数据: 将数据快照写入到临时文件中,确保数据的完整性。这个过程通常是先将数据写入到一个临时文件中,然后再用原子操作将临时文件替换掉旧的 RDB 文件。

  5. 替换旧文件: 一旦新的 RDB 文件创建完成,Redis 就会用这个新文件替换掉原来的 RDB 文件。这个过程通常是原子的,这意味着在替换的瞬间,Redis 要么完全替换,要么完全不替换。

  6. 完成持久化: 当替换完成后,Redis 完成了一次 RDB 持久化。这个过程是非常快速的,因为 Redis 只需将内存中的数据写入硬盘。

相关推荐
wowocpp5 分钟前
idea springboot 配置文件 中文显示
java·spring boot·intellij-idea
User_芊芊君子9 分钟前
【Java面试题】——this 和 super 的区别
java·开发语言
柴薪之王、睥睨众生10 分钟前
(自用)Java学习-5.8(总结,springboot)
java·开发语言·spring boot·学习·mybatis
牛马baby10 分钟前
Java高频面试之并发编程-17
java·开发语言·面试
让我们一起加油好吗10 分钟前
【C++】模板(初阶)
开发语言·c++·visualstudio·模板·泛型编程
不辉放弃1 小时前
java连数据库
java·mysql
灏瀚星空1 小时前
基于Python的量化交易实盘部署与风险管理指南
开发语言·python
Run_Teenage1 小时前
C++类和对象:运行符重载、取地址运算符重载、const 修饰的类如何作为参数
开发语言·c++
一只小bit1 小时前
More Effective C++:改善编程与设计(上)
开发语言·c++·方法·技巧
钢铁男儿2 小时前
C# 方法(栈帧)
开发语言·c#