首先明确一点: redis持久化是为了崩溃重启后能把缓存恢复。防止造成缓存击穿 进而引发雪崩。
rdb:是redis默认的存储方式,RDB方式是通过快照( snapshotting )完成的。保存的是内存空间这一刻的数据,不记录命令过程。
触发快照的方式:
1. 符合自定义配置的快照规则
2. 执行save或者bgsave命令
3. 执行flflushall命令
4. 执行主从复制操作 (第一次)
常见配置如下:
save "" # 不使用RDB存储 不能主从
save 900 1 # 表示15分钟(900秒钟)内至少1个键被更改则进行快照。
save 300 10 # 表示5分钟(300秒)内至少10个键被更改则进行快照。
save 60 10000 # 表示1分钟内至少10000个键被更改则进行快照
RDB执行流程:
- Redis父进程首先判断:当前是否在执行save,或bgsave/bgrewriteaof(aof