Redis数据持久化

本文详细介绍了Redis的两种持久化方式:AOF日志(Append Only File)和RDB快照。AOF日志采取写后日志策略,先执行命令再记录,避免错误命令记录,但存在数据丢失风险,通过不同写回策略平衡性能与安全性。AOF重写机制减少日志文件大小,避免阻塞主线程。RDB快照则是内存状态的定时记录,通过bgsave避免主线程阻塞,依赖写时复制技术。Redis通常会结合AOF和RDB实现高效且安全的数据持久化。
摘要由CSDN通过智能技术生成

思维导图

AOF日志

如何实现:写后日志,Redis先执行命令,把数据写入内存,然后记录日志(记录的是修改数据集的命令)

为什么要先执行命令再记日志

避免额外的检查开销

AOF日志文件中保存的是Redis执行修改数据集的命令。在写入日志文件时并不会检查这些命令是否有语法错误,所以,如果先写入日志在执行命令的话,日志中可能记录的就是错误的命令,当Redis使用日志进行数据恢复时,就会出错。

Redis 使用写后日志这一方式的一大好处是,可以避免出现记录错误命令的情况。

不会阻塞当前写操作

潜在风险

执行完命令,写日志之前宕机,则这条命令和相应数据有丢失的风险

有阻塞的风险

AOF 虽然避免了对当前命令的阻塞,但可能会给下一个操作带来阻塞风险。这是因为,AOF 日志也是在主线程中执行的,如果在把日志文件写入磁盘时,磁盘写压力大,就会导致写盘很慢,进而导致后续的操作也无法执行了

解决风险

3种写回策略

Always,同步写回:每个写命令执行完,立马同步地将日志写回磁盘

  • 同步写回”可以做到基本不丢数据,但是它在每一个写命令后都有一个慢速的落盘操作,不可避免地会影响主线程性能;

Everysec,每秒写回:每个写命令执行完,只是先把日志写到

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值