RDB:
Redis DataBase 将某⼀个时刻的内存快照(Snapshot),以⼆进制的⽅式写⼊磁盘
。
手动触发:
自动触发:
-
save m n
:在 m 秒内,如果有 n 个键发⽣改变,则⾃动触发持久化,通过bgsave执⾏,如果设置多个、只要满⾜其⼀就会触发,配置⽂件有默认配置(可以注释掉)
-
flushall
:⽤于
清空redis所有的数据库
,flushdb清空当前redis所在库数据(默认是
0
号数据库),会清空RDB⽂件,同时也会⽣成
dump.rdb
、内容为空
-
主从同步
:全量同步时会⾃动触发bgsave命令,⽣成rdb发送给从节点
AOF:
Append Only File
以⽇志的形式记录服务器所处理的每⼀个写、删除操作,查询操作不会记录,
以⽂本的⽅式记录,可以打开⽂件看到详细的操作记录,调操作系统命令进程刷盘
- 所有的写命令会追加到 AOF 缓冲中。
-
AOF 缓冲区根据对应的策略向硬盘进⾏同步操作。
-
随着 AOF ⽂件越来越⼤,需要定期对 AOF ⽂件进⾏重写,达到压缩的⽬的。
-
当 Redis 重启时,可以加载 AOF ⽂件进⾏数据恢复
。
同步策略:
- 每秒同步:异步完成,效率⾮常⾼,⼀旦系统出现宕机现象,那么这⼀秒钟之内修改的数据将会丢失
- 每修改同步:同步持久化,每次发⽣的数据变化都会被⽴即记录到磁盘中,最多丢⼀条
-
不同步
:由操作系统控制,可能丢失较多数据
优点:
缺点:
- AOF ⽂件⽐ RDB ⽂件⼤,且恢复速度慢。
-
数据集⼤的时候,⽐ rdb 启动效率低。
-
运⾏效率没有RDB⾼
对比:
- AOF⽂件⽐RDB更新频率⾼,优先使⽤AOF还原数据。AOF⽐RDB更安全也更⼤
-
RDB性能⽐AOF好
-
如果两个都配了优先加载AOF