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

redis之RDB持久化过程

redis的rdb持久化过程
在这里插入图片描述
流程图就想表达两点:
1.主进程会fork一个子进程,子进程共享主进程内存数据(fork其实是复制页表),子进程读取数据并写到新的rdb文件,最后替换旧的rdb文件。

2.在持久化过程中主进程接收到用户写操作,会复制一份数据副本,读写操作在数据副本中进行,因此在配置maxmemory的大小时应该合理,预留足够的物理内存,以免rdb过程有写操作的这种情况而导致内存不足出现异常

redis.conf中rdb持久化机制默认配置

#是否在将rdb文件持久化到磁盘时,进行压缩操作。设置为 "yes" 
#可以提高数据安全性,但可能会降低性能。默认为 "no"。
rdbcompression yes
#rdb文件名
dbfilename rdb_dump.rdb
#rdb持久化,快照可以用一个空字符串参数完全禁用:save “”
#在900秒(15分钟)内,如果有至少1个键被改变,则bgsave进行RDB持久化
#在300秒(5分钟)内,如果有至少10个键被改变,则bgsave进行RDB持久化
#在60秒内,如果有至少10000个键被改变,则bgsave进行RDB持久化
save 900 1          
save 300 10          
save 60 10000      

什么时候会促发rdb持久化

1.手动执行save,bgsave命令的时候
2.redis进程退出之前会进行持久化
3.对key的操作符合redis.conf中配置的促发条件

rdb持久化机制优点

1:rdb文件保存的是二进制数据,在恢复大数据集时速度比aof的快

rdb持久化机制缺点

1.rdb时间比较长,两次rdb之间存在数据丢失风险
2.数据量大时,fork子进程,压缩,写rdb文件耗时都比较长

http://www.kler.cn/a/535072.html

相关文章:

  • mysql8安装时提示-缺少Microsoft Visual C++ 2019 x64 redistributable
  • 2025职业发展规划
  • 109,【1】攻防世界 web 题目名称-文件包含
  • python3中错误与异常初识
  • 【现代深度学习技术】深度学习计算 | 延后初始化自定义层
  • 中国通信企业协会 通信网络安全服务能力评定 风险评估二级要求准则
  • Spring Boot整合MQTT
  • 2025游戏行业的趋势预测
  • GB/T 43698-2024 《网络安全技术 软件供应链安全要求》标准解读
  • Docker镜像管理:掌握save/load与export/import的精髓
  • 90.子集||
  • python学opencv|读取图像(五十五)使用cv2.medianBlur()函数实现图像像素中值滤波处理
  • node.js使用mysql2对接数据库
  • 【分布式理论五】分布式调用(3):服务注册与发现
  • Python批量重命名文件的实用案例
  • 【Linux高级IO】五种IO模型
  • 手写MVVM框架-渲染v-for列表(修改List)
  • VUE 集成企微机器人通知
  • hot100(8)
  • 《工业4.0时代?!》
  • 【Flutter】【WEB3】判断一个String是不是钱包地址
  • Linux——基础命令1
  • 线程同步时定义 std::mutex 为什么要在前面添加 mutable 关键字
  • 旋转变压器工作及解调原理
  • Vue3-管理状态 effectScope
  • OpenAI向所有用户开放ChatGPT搜索,无需账号登录