[Redis]——Redis持久化的两种方式RDB、AOF

目录

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和内存。

猜你喜欢

转载自blog.csdn.net/Panci_/article/details/136683944