Redis的持久化(八股)

持久化

从文件类型,文件恢复速度,安全性会进行区分。本质区别是RDB使用快照进行持久化,AOF是日志。

  • 文件类型:RDB生成的是二进制文件(快照),AOF生成的是文本文件(追加日志)
  • 安全性:缓存宕机的时候,RDB容易丢失较多的数据,AOF根据策略决定(默认的可以保证最多有一秒的丢失)
  • 文件恢复速度:由于RDB是二进制文件,所有恢复速度比AOF快。
  • 操作的开销:每一次RDB保存都是一次全量的保存,操作比较重,通常设置至少五分钟保存一次数据。而 AOF的刷盘是一次追加的操作,操作比较轻,通常设置策略为每一秒进行一次刷盘。

AOF的混合持久化方案:

  • AOF混合持久化方案会使用RDB持久化函数,将内存数据写入到新的AOF文件中(数据格式也是RDB格式)
  • 而重写期间新的写入命令追加到新的AOF文件仍然是AOF格式
  • 此时新的AOF文件就是由RDB格式和AOF格式组成的日志文件。

AOF的重写流程:

  • 子进程读取Redis DB中的数据以字符串命令的格式(也可以看作AOF文件格式)写入到AOF文件中
  • 如果有新数据,由主进程将数据写入到AOF重写缓冲区
  • 当子进程完成重写操作后,主进程通过管道将AOF重写缓冲区中的数据传输给子进程,然后子进程追击到AOF文件中。
相关推荐
WinterKay10 分钟前
【开源】我写了一个轻量级本地数据库浏览工具,支持 MySQL/Redis 只读查询
数据库·mysql·开源
小猿姐1 小时前
Redis Kubernetes Operator 实测:三个方案的真实差距
redis·容器·kubernetes
zxrhhm1 小时前
Oracle 索引完整指南
数据库·oracle
程序猿乐锅2 小时前
【Tilas|第三篇】多表SQL语句
数据库·经验分享·笔记·学习·mysql
Navicat中国3 小时前
使用 Navicat 导入向导导入 Excel 数据时,系统提示导入成功,表中也能看到数据,但行数统计显示为 0,这是什么原因?
数据库·excel·导入
gmaajt3 小时前
Golang怎么做国际化多语言_Golang i18n教程【核心】
jvm·数据库·python
折哥的程序人生 · 物流技术专研3 小时前
从“卡死”到“秒过”:WMS销售数据跨库回填的极限优化之旅
数据库·机器学习·oracle
李可以量化3 小时前
DeepSeek 量化交易实战:用标准化提示词模板实现 AI 辅助交易决策
大数据·数据库·人工智能
maqr_1103 小时前
CSS如何利用Sass定义全局阴影方案_通过变量实现统一CSS风格
jvm·数据库·python
m0_613856293 小时前
uni-app怎么做类似于美团的商家评价星级 uni-app五星评分组件制作【实战】
jvm·数据库·python