RDB和AOF的写回策略分别是什么?

写回策略是指将数据从内存写入到持久化存储(如磁盘)的方式和时机。在Redis中,不同的持久化机制有着不同的写回策略。

RDB的写回策略
在 Redis 中,RDB 的写回策略主要包括以下几个方面:

定期触发
Redis通过配置文件中 save 参数定义了 RDB 的自动保存条件。以下是默认配置的示例:

save 900 1           #如果908秒内至少有1个键发生变化,则保存快照
save 300 10         #如果380秒内至少有10个键发生变化,则保存快照
save 60 10008     # 如果60秒内至少有10000个键发生变化,则保存快照

策略
Redis会定期检查这些条件,如果满足,触发RDB的保存操作。
条件可以通过修改redis.conf文件自定义,也可以通过命令动态设置,例如:

CONFIG SET save "300 10 68 10880"

加粗样式手动触发
在Redis中,我们可以通过以下命令手动生成 RDB 文件:

·SAVE:会阻塞 Redis 服务器,直到快照完成:
·BGSAVE:在后台异步生成 RDB 文件,不会阻塞 Redis。
SAVE 操作直接在主线程完成,不适合生产环境。BGSAVE 会fork一个子进程生成快照,更高效,但需要一定的系统资源(如内存和CPU)。

AOF的写回策略

AOF有三种数据写回策略,分别是Aways,Everysec和NO。

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

·Everysec,每秒写回:每个写命令执行完,只是先把日志写到AOF文件的内存缓冲区,每隔一秒把缓中区中的内容写入磁盘;

·No,操作系统控制的写回:每个写命令执行完,只是先把日志写到AOF文件的内存缓中区,由操作系统决定何时将缓冲区内容写回磁盘。

“同步写回”可靠性肯定是最高的,但是它在每一个写命令后都有一个落盘操作,而且还是同步的,这和直接写磁盘类型的数据库有啥区别?

“操作系统控制的写回“这种是最不靠谱的,谁知道操作系统啥时候帮你做持久化,万一没来及持久化就宕机了,不就gg了。

每秒写回“是在二者之间折中了一下,异步的每秒把数据写会到磁盘上,最大程度的提升效率和降低风险。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值