redis基于增量模式的优化

redis是一款基于内存的存储系统,掉电后数据将会全部丢失,为此redis支持一定的数据持久化能力,仅是持久化至本地磁盘。

在持久化时,支持全量模式和增量模式;

全量模式即将此时内存中数据做一次快照全部存储与本地磁盘中,由于本地磁盘大小往往远大于内存大小,且新生成的快照信息会覆盖旧的快照信息,因此不会存在什么磁盘溢出的危险。

缺点是每次全量的将内存数据写入至磁盘且redis是一个单线程执行请求的。因此会对吞吐量造成一定的压力(save)

全量写入的两个命令是SAVE/BGSAVE,可有客户端触法,也可配置定时任务触法,也可在redis shutdown时触法,BGSAVE是fork一个子线程,期间不影响redis对外服务的可用性。

增量模式即AOF(apend only file)保存的是数据的“变迁” 也就是记录每次的命令 类似mysql中基于语句的日志记录,优点是只记录执行的语句,每次磁盘操作很短,对写入操作影响小。

随着执行语句的不断增长,对应的aof文件会不断变大,可能会占用大量的磁盘空间,后续的aof操作也会越来越慢,为此可采用全量+增量复合的模式进行优化,原理是设置一个定时任务定时保存内存快照,在快照生成及持久化至磁盘过程中的语句记录至对应的磁盘文件中,定时周期内的语句使用aof记录至相应的aof文件中,这样就能避免磁盘文件不断膨胀的问题。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值