文章目录
一. 概述redis持久化的俩种模式
随着redis越来越流行,使用者不在仅仅满足其只是一个内存数据库,同时也期望其能将内存数据落磁盘,这样重启服务就不会导致缓存数据丢失了
redis持久化有俩种模式模式,分别如下:
| 持久化模式 | 说明 | 优点 | 缺点 |
|---|---|---|---|
| rdb模式 | 定期将redis当前内存数据快照备份到硬盘 | redis重启时恢复速度快 | 由于备份不宜频繁,会导致系统异常宕机时,redis大量数据丢失 |
| aof模式 | 将redis执行的命令每隔1s批量同步到文件中 | 机器异常宕机时,最多丢失1s数据 | 由于保存的是命令,会导致保存很多赘余数据,文件过大(这时候恢复起来相对rdb会慢很多) |
二. rdb持久化模式
1.rdb持久化核心思路
获取当前内存快照并将快照数据保存到磁盘实现当前数据全量备份
2.rdb持久化难点
(1)如何获取当前内存数据快照
redis利用linux fork子进程后( cow机制:https://juejin.im/post/5bd96bcaf265da396b72f855 )子进程拥有父进程的内存快照来获取内存快照
(2)保存数据落盘时io操作阻塞其他请求
redis rdb持久化落盘操作只在独立的子进程中进行不会影响到主进程中的其他请求
3.rdb持久化后rdb文件的格式
(1)redis rdb文件整体格式如图1所示
- 开头为固定的REDIS 5个字符,标示这是一个redis rdb文件
- 5.0.0标示保存改rdb文件的redis服务为5.0.0版本
- 64标示保存rdb文件的redis所在机器为64位机
- 1554103539为该rdb文件的创建时间
- 23343563为该rdb内存快照需占用内存大小
- 接着保存的为复制相关标示和数据库数据(见图2)
- EOF标志代表rdb文件结尾
- 63562735845846756为rdb完整性检查的校验和

本文详细介绍了Redis的两种持久化方式:RDB和AOF。RDB通过创建内存快照实现全量备份,AOF则记录更新命令。RDB在恢复时更快,但可能丢失更多数据;AOF文件可能庞大,但数据安全性更高,且通过定期重写可减少冗余。选择合适的方式取决于业务需求。
最低0.47元/天 解锁文章
2056

被折叠的 条评论
为什么被折叠?



