Redis的数据持久化方式有 RDB 和 AOF 两种,这篇文章将会讲解 AOF
AOF是什么
AOF(Append Only File)以日志形式记录服务器收到的每一个写操作
AOF怎么进行持久化
使用AOF默认会在当前目录下生成一个 appendonly.aof 日志文件
在恢复数据时,AOF会将appendonly.aof中记录下的所有写操作重新按顺序执行一遍
以下是appendonly.aof文件的示例片段
*2
$6
SELECT
$1
0
*3
$3
SET
$2
id
$3
123
*3
$3
SET
$4
name
$6
DangHT
*3
$3
SET
$4
from
$3
NPU
如果一不小心执行了 FLUSHALL 命令清除了数据集,若想要恢复,可以打开aof文件删除其中的FLUSHALL命令记录即可
AOF有三种触发写入磁盘操作的策略:
- always:同步持久化,每次发生数据变更会被立即记录到磁盘,性能较差但是数据完整性较好
- everysec(default):默认设置,异步操作,每秒记录,如果有一秒宕机,会丢失一秒内的数据
- no:不主动触发,由操作系统自行触发
AOF与RDB能共存吗
当然可以,然而Redis再数据恢复时会优先去查看AOF文件
当共存时,若AOF文件出错,则Redis服务启动时会报错
官方提供了redis-check