Redis - 持久化

Redis 的持久化方式有两种:RDB、AOF

RDB

RDB 是某个时间点数据的快照,可以定期全量备份。

原理:

  • 父进程 fork 子进程
  • 子进程将数据写入临时 RDB 文件中
  • 子进程完成写入时,用临时 RDB 替换掉旧的 RDB
  • 假如1点开始备份数据,1点以后的数据不会被备份,因为子进程看不到父进程的数据

优点:恢复速度快。

缺点:窗口期数据易丢失。

AOF

AOF 记录每次写操作的日志。

如果每次写操作都记录日志,最终的 AOF 文件就会无限大,如何解决这个问题呢?

  • 重写。Redis 择时将内存中的数据备份到临时 AOF 文件中,备份时点之后的数据先写到缓存中,临时 AOF 文件完成写入之后,再将缓存中的数据写入临时 AOF 文件,最后用临时 AOF 文件替换掉旧的 AOF 文件。
  • 从 4.x 版本开始 AOF 文件支持 RDB+AOF 的混合体,重写是写 RDB,然后在 AOF 文件开头记录 RDB 文件的信息。

优点:丢失数据少

评论(0条)

刀客源码 游客评论