1.RDB
在指定的时间间隔内将内存中的数据集快照写入磁盘,恢复时将快照文件直接读到内存。
备份:Redis单独创建(Frok)一个子进程进行持久化,会先将数据写入一个临时文件中,待持久化过程结束了再用临时文件替换上次持久化好的文件。
恢复:根据持久化后生成的文件恢复数据
相关配置:
(1)save <时间> <数量>:如设置save 30 10,表示30秒内10个key改变则进行持久化操作,
将这10个key及value放入磁盘。
stop-writes-on-bgsave-error yes: 关闭Redis的写操作
2.AOF
AOF以日志形式记录每个写操作,只许追加文件但不可修改文件,Redis启动时读取该文件重新构建数据。
(1)客户端写命令追加到AOF缓冲区
(2)AOF缓冲区根据AOF持久化策略[always,everysec,no]将操作同步到磁盘的AOF文件
(3)AOF文件大小超过重写策略或手动重写时,会对AOF文件rewrite重写,压缩AOF文件容量
(4)Redis服务重启时,会重新load加载AOF文件中的写操作恢复数据。
AOF默认不开启,AOF与RDB同时开启,系统默认取AOF的数据
相关配置:
appendonly yes:开启AOF
appendfsync always,everysec,no :AOF同步频率设置,always:每次都同步,everysec:每秒同步一次,no:不主动进行同步。
AOF文件损坏修复命令,在AOF目录下执行,后重启 Redis:
redis-check-aof --fix appendonly.aof