【Redis教程】入门到精通 超详细版教程

P6_Redis-6-持久化
持久化,就是把内存里的数据落盘的过程。
redis支持持久化,memcached不支持。
redis支持2种持久化方式:RDB、AOF
RDB,基于时间点的快照(point-in-time snapshot),定时将内存的实时状态做成快照的方式,保存在磁盘上。
只保存当前状态的快照,会把之前的快照覆盖。
相当于把redis中的键值对拍张照片,在磁盘上存档。
优点:速度快,适合快速备份,主从复制也是基于RDB持久化功能实现的。
缺点:会有数据丢失
在redis控制台执行“save”命令,才会触发持久化机制。
“save”命令会阻塞键值对的修改,在执行此命令时,如果数据量大,会影响键值对的写入。
“bgsave”命令是在后台执行持久化,会检查那些键值对正在使用,先持久化没有使用的键值对。
rdb持久化配置参数
vim /etc/redis.conf
dir /data/redis
dbfilename dump.rdb
save 900 1
save 300 10
save 60 10000
900秒(15分钟)内有1次更改,就会持久化1次
300秒(5分钟)内有10次更改,就会持久化1次
60秒(1分钟)内有10000次更改,就会持久化1次
修改参数后,需要重启redis才能生效。
AOF(append-only log file,字面意思,追加式的日志文件)
特别接近MySQL的binlog,记录的是redis上的所有变更类语句,也就是记成日志的方式。
比rdb方式,对数据的完整更安全。
记录redis执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。
AOF文件中的命令全部以redis协议的格式保存,新命令会被追加到文件的末尾。
优点:最大程度保证数据不丢
缺点:日志量级比较大
aof持久化配置
appendonly yes【是否打开此功能,默认是关闭】
appendfsync always【落盘的策略:always,每条变更都要记录;everysec,每秒记录】
RDB和AOF两种持久化方式是可以共存的。