当前位置: 首页 > backend >正文

Redis能保证数据不丢失吗之RDB

有了AOF为什么还需要RDB?

上一篇我们介绍了Redis AOF持久化策略。Redis能保证数据不丢失吗之AOF

AOF虽然能实现持久化,但由于AOF恢复数据的时候是一条一条命令重新执行的,但数据量大的时候,Redis数据恢复的时间就会很久,这会导致Redis在重启的时候,有一大段时间的不可用,这很明显是不能接受的。

为此Redis引入了RDB快照。

RDB是什么

RDB是一种内存快照,Redis将某一时刻中的内存中所有的数据保存在一个RDB文件中。由于RDB保存的是数据,而不是命令,所以Redis重启恢复数据时,只需要将RDB文件加载到内存中就可以恢复数据。

快照指某一时刻被定格的数据,就像我们拍照一样,咔嚓一声,那一时刻的画面就被记录下俩了。

但做生成RDB文件的过程中,Redis还是会继续处理写请求的,那怎么办保证数据不变呢?

其实RDB的生成也是利用fork 写时复制的特点实现的,fork一个子进程,子进程刚开始与父线程共享一个内存空间,当Redis处理写请求时,此时会复制一个新的内存空间,在新的内存空间进行修改。而RBD所使用的数据还是之前的数据,不会受到影响。

当然,这里也有一个注意的点,因为使用到了fork,fork的瞬间是会阻塞主线程的,阻塞的时间跟当前内存数据大小有关,这一点在AOF的那篇文章中有讲过,这里就

http://www.xdnf.cn/news/5293.html

相关文章:

  • 【Web】使用Vue3开发鸿蒙的HelloWorld!
  • 模拟太阳系(C#编写的maui跨平台项目源码)
  • Autoware message_filters::Synchronizer链接错误问题
  • Axure疑难杂症:统计分析页面引入Echarts示例动态效果
  • 目录粘滞位的使用
  • JDBC链接数据库
  • 【typenum】 0 配置文件(Cargo.toml)
  • 【MySQL】事务(重点)
  • 酒店洗护用品那些事儿:品牌选择及扬州卓韵用品介绍
  • 6. 存储池配置与CephFS创建 ceph version 14.2.22
  • muduo源码解析
  • 【第33节 数据库基础概念】
  • 游戏引擎学习第269天:清理菜单绘制
  • [模型选择与调优]机器学习-part4
  • PyTorch API 6 - 编译、fft、fx、函数转换、调试、符号追踪
  • HTTP 请求中 Content-Type 头部
  • 使用谱聚类将相似度矩阵分为2类
  • 2025年RAG技术有哪些创新点?
  • 海市蜃楼的形成原理
  • M0的基础篇之PWM学习
  • adb命令查询不到设备?
  • 第二个简单的SpringBoot和Vue前后端全栈的todoapp案例
  • 告别“感觉良好”:深入RAG评估,从方法、工具到指标的全方位指南
  • Telnetlib三种异常处理方案
  • ROM详解
  • Nvidia Isaac Sim组装机器人和添加传感器,创建关节树Articulation
  • 基于 RAG 的 Agent(LangChain实现)
  • 中小型工厂数字化转型:传统工艺的“生死劫”?
  • AI时代的数据可视化:未来已来
  • 计算机网络 4-1 网络层(网络层的功能)