目录
RDB快照模式
概念:
触发时机:
异步做快照
AOF追加模式
概念:
触发时机:
bgrewriteaof命令:
比较两种模式:
RDB快照模式
概念:
RDB模式就是保存当前Redis的状态到本地磁盘文件,生成一个xxx.rdb文件,实现数据持久化。
触发时机:
当Redis退出时,会触发save命令,保存快照,当Redis运行时,如果某个时间段有几个Key被修改了,可能触发bgsave命令,这取决于配置文件,例如 每30秒有1个key被修改。此外bgsave命令是开启子线程做快照操作。
异步做快照
AOF追加模式
概念:
将每一条Redis命令存到aof文件里面,并且对相同Key的修改也不会覆盖前面的命令。
触发时机:
- 也是根据配置文件的信息
- appendsync always - 每执行一条命令,操作内存的同时也更新磁盘
- appendsync everysec - 操作内存的同时更新AOF缓存,每一秒,将AOF缓存文件更新到磁盘
- appendsync no - 操作内存的同时更新AOF缓存,由操作系统决定何时写入磁盘。
bgrewriteaof命令:
为减小aof文件的大小,可以对该文件进行压缩。还是根据配置文件的参数,auto-aof-rewrite-percentage 100 如果文件比上次文件增长超过1倍,触发bgrewriteaof命令,auto-aof-rewrite-min-size 64mb aof文件触发自动重写命令的最小体积
比较两种模式:
- 使用场景:RDB高性能,AOF数据高一致性
- 文件大小:RDB文件小,只保留最后一次修改的数据,AOF保存每一条命令
- 持久化方式:RDB定时做快照,AOF记录每一次执行命令
- 宕机恢复:RDB快,AOF慢
- 系统资源占用:RDB因为是对整个数据库做快照,所以大量消耗CPU和内存,AOF追加命令,主要占用磁盘IO,但重写时会占用大量CPU和内存。