2022年10月更文挑战18-redis的持久化

68 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第18天,点击查看活动详情

redis的持久化

前文

本文内容为对于redis持久化相关知识的总结与整理,其中包含许多个人的观点及分析,内容可能不是完全准确。

redis的持久化

redis持久化的方式

正常来说实现redis的持久化,一般有以下三种方式:

  • rdb
  • aof
  • rdb和aof混用

rdb方式来说,主要是进行全量数据的存储。而全量数据的存储也分为采用save命令的阻塞存储以及采用bgsave命令的开启子进程存储。当然,上面所提到的命令的方式,也完全可以在redis的配置文件中进行配置。配置文件中可以指定按照命令操作数或按照时间的方式触发子进程存储的方式。rdb本身来说,优点在于具备它具备更快的数据恢复速度,而缺点在于如果在两次存储间出现redis服务的断电崩溃等问题,会出现大量的数据丢失。

aof方式来讲,是另一种命令追加的方式。这种方式为不停的向文件中追加写操作。这种方式由于每次操作都会写入到文件中,自然也就具备丢失数据少的优点。但它同样有缺点,就是按顺序的命令恢复具有比较慢的恢复速度。

当然rdb和aof可以同时进行开启,这是目前流行的一种方式。在aof向文件追加的同时,定时或定量进行rdb文件的存储。而如果rdb和aof方式都同时开启,程序会自动采用aof的方式进行数据恢复,由于aof恢复的完整性更高。

aof的优化

在高版本的redis中,已经在aof中包含了rdb文件。这样在进行数据恢复时,会先进行rdb文件的加载,恢复后在此基础上再进行aof方式的恢复。同样的,存储过程中为了避免aof文件的数据过大,也会定时的将aof中的数据刷写到rdb文件中,形成新的aof文件。

后记

  • 千古兴亡多少事?悠悠。不尽长江滚滚流。