Redis的两种持久化方式对比

RDB:

      描述:快照存储,具体是将Redis某一时刻的内存数据保存到硬盘文件中,默认保存文件名是dump.rdb。Redis服务启动时,会重新加载dump。rdb中的和数据到内存中恢复数据。

      开启方式:

      (1)save,save是同步的,服务器会阻塞save命令之后的其他客户端的请求;

      (2)bgsave,bgsave是异步的,客户端发出bgsave请求时,Redis服务器主进程会forks一个子进程来同步数据,此时forks子进程是同步的,完毕后保存到rdb文件中,子进程退出。

      (3)服务器配置自动触发,达到指定配置的条件就可以触发RDB持久化,比如设置多少秒内多少个key有写操作。

      优点:RDB持久化方式恢复数据更快;适合数据备份;异步持久化,对性能影响较小。

      缺点:RDB容易丢失某个时段的数据;bgsave在forks子进程时,如果数据量过大,也会发生阻塞;forks子进程耗费内存。 

 

AOF:

      描述:AOF持久化会记录客户端对服务器的每一次写操作命令,并将这些命令存储到aof文件中。Redis重启时,会加载并运行aof文件中的命令,达到数据恢复的目的。Redis默认不开启AOF。

      写入策略:

      (1)appendfsync always,客户端的每一次写操作都保存到aof文件中,但是比较耗费IO,较慢。

      (2)appendfsync everysec,服务器每秒写入一次aof文件,因此,最多丢失1秒的数据。

      (3)appendfsync no,服务器不负责写入aof,而是由操作系统来处理什么时候写入aof文件。不推荐使用。

      重写方式:

      (1)no-appendfsync-on-rewrite no,默认不开启重写,因为每次fsync都重写会影响性能。

      (2)bgrewriteaof,同样也是forks一个子进程异步重写aof文件。

      优点:丢失数据较少;aof只是追加日志,速度更快。

      缺点:恢复数据比较慢;aof日志文件比较大。

      综合:当两种持久化方式都开启时,Redis优先选择AOF日志来恢复数据,因为AOF保存的文件更加完整。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值