redis - 4 持久化
1. 概念:快照
快照,存储当前数据状态,关注点在数据
2. RDB启动方式bgsave -- (bgsave, save),存储快照
1. save 手动(不推荐)
2. bgsave 手动
3. 自动保存 配置文件中添加 save seconds changes # 在seconds中发生changes次数据修改就会触发一次bgsave保存。可以同时设置多个
会生成一个.rdb的文件,启动时自动加载。不同redis版本之间的.rdb文件不能混用,需要读到内存中保存为其他文件,再改变redis版本加载
需要进行相关配置
注意:因为redis是单进程的,save指令执行时会使后续任务等待,造成阻塞,所以线上环境不推荐使用。bgsave是后台启动,调用fork函数,生成子进程
![](https://img2020.cnblogs.com/blog/1815864/202111/1815864-20211120214748428-440153582.png)
3. AOF方式(目前主流)
1. 以独立日志的方式记录每次的修改命令,从而达到数据不会丢失的目的
2, AOF保存的三种策略
a. always,每次有修改都保存,数据完整,性能较差
b. everysec,每秒保存一次,丢失数据的话,每次只会丢失一秒的数据
c. no ,由系统自己操控,不可控
3. 配置
a. appendonly yes # 开启AOF功能
b. appendfsync everysec # 设置保存日志的策略
4. AOF重写:优化后保存日志
a. 已经超时的数据不再记录
b. 忽略无效命令
c. 将多条命令优化为一条命令
5. 如何执行AOF重写
a. 手动执行:bgrewriteaof
b. 自动:auto-aof-rewrite-min-size,文件达到一定大小就重写,需要做配置
c. 自动:auto-aof-rewrite-percentage,达到一定比例就重写,需要做配置