Redis中两种持久化机制RDB和AOF

1、RDB就是把数据以快照的形式保存在磁盘上,也是默认的持久化方式,提供了三种机制:save、bgsave、自动化。

(1)save触发方式,执行save命令其间,redis不能处理其他命令;

(2)bgsave触发方式,redis 会在后台异步进行快照操作,能同时处理其他命令,具体操作是redis进程执行fork操作创建子进程,RDB持久化过程由子进程负责,完成后自动结束,fork阶段会发生阻塞,但一般时间很短,这也是RDB持久化方式默认采用的机制;

(3)自动触发是配置文件触发,在redis.conf配置文件中,①save,save 300 10,表示300 秒内如果至少有 10 个 key 的值变化,则保存;②stop-writes-on-bgsave-error :默认值为yes,当启用了RDB且最后一次后台保存数据失败,redis是否停止接收数据;③rdbcompression ;默认值是yes,设置是否进行压缩存储;④rdbchecksum :默认值是yes,是否让redis使用CRC64算法来进行数据校验;⑤dbfilename :设置快照的文件名,默认是 dump.rdb;⑥dir:设置快照文件的存放路径


(4)优势以及劣势,RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快,非常适合用于进行备份和灾难恢复,但在在快照持久化期间修改的数据不会被保存,可能丢失数据

2、AOF也有三种触发机制:每修改同步always、每秒同步everysec、不同no。

(1)每修改同步always:每次发生数据变更会被立即记录到磁盘,性能差但是数据完整

(2)每秒同步everysec:异步操作,每秒记录 如果一秒内宕机,有1s数据丢失

(3)不同no:依据操作系统,不用管但不可控


 (4)优势以及劣势,后台运行,写入性能非常高,文件不容易破损,非常适合做灾难性的误删除的紧急恢复


文章转载来源于:https://baijiahao.baidu.com/s?id=1654694618189745916&wfr=spider&for=pc

你可能感兴趣的:(Redis中两种持久化机制RDB和AOF)