page contents

Redis 持久化有几种方式?

轩辕小不懂 发布于 2021-11-22 15:47
阅读 536
收藏 0
分类:数据库
2476
Nen
Nen
- 程序员

持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失。Redis 提供了两种持久化方式:RDB(默认) 和 AOF。

RDB

RDB 是 Redis DataBase 的缩写。按照一定的时间周期策略把内存的数据以快照的形式保存到硬盘的二进制文件。即 Snapshot 快照存储,对应产生

的数据文件为 dump.rdb,通过配置文件中的 save 参数来定义快照的周期。核心函数:rdbSave(生成 RDB 文件)和 rdbLoad(从文件加载内存)

两个函数。

AOF

AOF 是 Append-only file 的缩写。Redis会将每一个收到的写命令都通过 Write 函数追加到文件最后,类似于 MySQL 的 binlog。当 Redis 重启是会

通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容。每当执行服务器(定时)任务或者函数时,flushAppendOnlyFile 函数都会

被调用, 这个函数执行以下两个工作:

WRITE:根据条件,将 aof_buf 中的缓存写入到 AOF 文件;

SAVE:根据条件,调用 fsync 或 fdatasync 函数,将 AOF 文件保存到磁盘中。

RDB 和 AOF 的区别:

1. AOF 文件比 RDB 更新频率高,优先使用 AOF 还原数据;

2. AOF比 RDB 更安全也更大;

3. RDB 性能比 AOF 好;

4. 如果两个都配了优先加载 AOF。

请先 登录 后评论