1、持久化
redis支持两种方式持久化
RDB:以指定的时间间隔数执行据库在某个时间点的快照。
AOF:记录了接收的写操作。下次服务启动时执行,重构原始数据集。命令以redisf协议格式追加记录的。当日志过大时后台会重写日志。
不持久化:当服务运行时,数据才存在
RDB&AOF:当服务启动时,AOF文件用来重构原始数据集用来保证数据完整性。
2、优缺点
RDB优势
是紧凑文件,是数据集在某个时间点的快照。很好的用于备份。在出现故障时容易恢复。
是紧凑文件,易于转移到其它数据中心。
因为父进程会fork子进程来做持久化工作,性能得到最大化。
与AOF相比,RDB可以快速的恢复大数据集。
RDB劣势
不能使得数据损失最小化
如果数据集比较大,fork子进程时会比较耗时,可能会导致服务器秒级不能对外提供服务。
AOF优势
可以有不同的同步策略,不同步,每秒同步,每次查询同步。默认策略时每秒同步。仅仅丢失秒级写操作
只做追加的日志
当文件比较大时自动重写日志,当redis继续追加到旧的文件时,重写是完全安全的,为当前数据集的操作最小集创建新的日志文件,一旦新的文件准备好,切换到新的文件追加。
以易于理解及解析形式包含所有操作日志,易于导出。
劣势:
与RDB相比,文件过大
使用相似同步策略时,AOF会慢些。