redis 消息离线缓存_数据库缓存最终一致性的四种方案

本文探讨了数据库缓存一致性的重要性,特别是在使用Redis作为MySQL缓存时面临的挑战。文章介绍了四种解决方案:1)仅依赖过期时间;2)更新MySQL时同步更新Redis;3)借助消息队列异步更新;4)订阅MySQL binlog实时同步。总结指出,方案1适用于大多数场景,而方案4适合对延迟要求高的业务。
摘要由CSDN通过智能技术生成

专注于Java领域优质技术,欢迎关注

作者:叶不闻

e07b626977a604095919cce58c98af37.png

背景

缓存是软件开发中一个非常有用的概念,数据库缓存更是在项目中必然会遇到的场景。而缓存一致性的保证,更是在面试中被反复问到,这里进行一下总结,针对不同的要求,选择恰到好处的一致性方案。

缓存是什么

存储的速度是有区别的。缓存就是把低速存储的结果,临时保存在高速存储的技术。

d57cba037614058e7138e3c554e15735.png

如图所示,金字塔更上面的存储,可以作为下面存储的缓存。我们本次的讨论,主要针对数据库缓存场景,将以redis作为mysql的缓存为案例来进行。

为什么需要缓存

存储如mysql通常支持完整的ACID特性,因为可靠性,持久性等因素,性能普遍不高,高并发的查询会给mysql带来压力,造成数据库系统的不稳定。同时也容易产生延迟。根据局部性原理,80%请求会落到20%的热点数据上,在读多写少场景,增加一层缓存非常有助提升系统吞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值