一、持久化简介
意外断电,自动备份。
1、概念:
利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化。
2、为什么进行持久化:
防止数据的意外丢失,确保数据安全性。
3、持久化过程保存什么:
答:方式一:保存当前数据,方式二:保存数据的操作过程
4、快照保存数据(RDB):
每隔小时间段,在计算机上进行一次数据的自动保存。存储数据结果,存储格式简单,关注点在数据。
5、过程保存步骤(AOF):
将数据的操作过程进行保存,日志形式,存储操作过程,存储格式复杂,关注点在数据的操作过程。
6、在redis中持久化有两种方式:
A:数据(快照):RDB
B:过程(日志):AOF
二、RDB
1、RDB启动方式:(save bgsave save配置)
A、方式一:save,线上环境不要采用save命令,性能降低。
RDB相关配置
save执行工作原理:
B、方式二:数据量过大,单线程执行方式造成效率过低如何处理。
答:后台执行
命令:bgsave
说明:bgsave命令是针对save阻塞问题做的优化,Redis内部所有涉及到RDB操作都采用bgsave的方式,save可以放弃使用。
作用:手动启动后台保存操作,但不是立即执行。
bgsave执行原理:
C、方式三:save配置
2、RDB优缺点比较
三、AOF
1、AOF的主要作用是解决数据持久化的实时性,目前已经是redis持久化的主流方式。
2、AOF写数据过程:
3、AOF写数据三种策略
always(每次):每次写入操作均同步到AOF文件中,数据零误差,性能较低。
everysec(每秒):每秒将缓冲区中的指令同步到AOF文件中,数据准确性较高,性能较高,在系统突然宕机的情况下丢失1s内的数据。
no(系统控制):由操作系统控制每次同步到AOF文件的周期,整体过程不可控。
4、AOF功能开启
配置:在配置文件中加入
appendonly yes|no
appendfsync always|everysec|no
5、AOF重写
手动重写:bgrewriteaof
自动重写:
auto-aof-rewrite-min-size size
auto-aof-rewrite-percentage percentage