RDB:
RDB持久化是把当前进程数据生成快照保存到硬盘的过程,Redis 默认的方式。
触发机制:
1)save命令: 阻塞当前Redis服务器, 直到RDB过程完成为止。
对于内存比较大的实例会造成长时间阻塞, 线上环境不建议使用。
2)bgsave命令: Redis进程执行fork操作创建子进程, RDB持久化过程由子进程负责, 完成后自动结束。
阻塞只发生在fork阶段, 一般时间很短。持久化过程,主线程还可以执行命令
bgsave流程:

3)自动触发: redis.conf中配置:
save 900 1
save 300 10
save 60 10000
##900s 内更改一次,就储存; 300s 内更改了 10 次就储存
其他自动触发情况:
主从复制时,全量复制操作时
执行shutdown命令时,如果没有开启AOF持久化功能则自动执行bgsave
执行debug reload命令重新加载Redis时, 也会自动触发save操作
二者区别:

RDB优缺点:
优点:RDB是一个紧凑压缩的二进制文件,压缩后的文件远远小于内存大小。
Redis加载RDB恢复数据远远快于AOF的方式。
缺点:耗时、耗性能 - - bgsave每次运行都要执行fork操作创建子进程, 属于重量级操作, 频繁执行成本过高
RDB不适合实时持久化。
AOF:
Redis持久化的主流方式,主要解决了数据持久化的实时性。
AOF配置: 配置redis.conf
appendonly yes //默认no,不开启AOF
appendfilename //aof文件名,
dir ./ //aof文件目录
appendfsync //同步策略
AOF工作流程:

Redis可以提供多种缓冲区同步硬盘的策略, 在性能和安全性方面做出平衡
AOF缓冲区同步文件策略:
always: 每次写入缓冲区的命令都调用fsync操作同步到AOF文件。
no: 不对AOF文件做fsync同步操作
everysec: Redis使用另一条线程每秒执行fsync同步操作,常用的同步硬盘的策略
AOF重写作用:
减少磁盘占用量、加速恢复速度
RDB与AOF:
参考:
有空还是看《Redis开发与运维》第5章吧
来源:CSDN
作者:做猪呢,最重要的是开森啦
链接:https://blog.csdn.net/weixin_43901882/article/details/104615085