全球短讯!缓存一致性如何保障
时间:2023-06-24 19:22:48 来源:博客园
【资料图】
缓存在现代应用程序中被广泛使用,用于提高性能和降低对后端数据存储系统的负载。然而,使用缓存也带来了一个重要问题:缓存一致性。在分布式系统中,缓存一致性成为了一个挑战,因为我们需要确保缓存中的数据与后端数据存储系统的数据保持同步,以避免数据不一致的情况发生。
Cache Aside Pattern(先写库再删缓存)
Cache Aside Pattern 是一种常见的缓存设计模式,用于在应用程序中有效地利用缓存来提高性能和降低对后端数据存储系统的负载。该模式的核心思想是将缓存视为数据检索的副本,并在需要访问数据时先查询缓存。如果缓存中存在所需数据,则直接从缓存中获取;如果缓存中不存在所需数据,则从后端数据存储系统(如数据库)中获取,并将数据添加到缓存中以供下次使用。
读取数据时:
- 应用程序首先查询缓存,检查所需数据是否已经存在于缓存中。
- 如果缓存中存在数据,则直接返回缓存中的数据。
- 如果缓存中不存在数据,则从后端数据存储系统中获取数据,并将数据添加到缓存中,以便下次访问时能够直接从缓存中获取。
写入/更新数据时:
- 应用程序首先更新后端数据存储系统中的数据。
- 然后,应用程序使缓存中与被更新数据相关的缓存项失效,以保持缓存中的数据与后端数据存储系统的一致性。
更新缓存时,不使用更新,而是删除
删除缓存:在数据更新完成后,即刻删除对应的缓存项。这样做是为了确保下一次使用该数据时,会从后端数据存储系统读取最新的数据而不是过期的缓存值。
为什么不可以先更新缓存,再更新库
并发操作导致数据不一致:假设有多个同时请求需要修改同一个数据项,如果先删除缓存再写数据库,可能会导致并发操作之间的数据不一致。这是因为在删除缓存的时间窗口内,其他请求可能会读取到旧的缓存值,而不是最新的数据库值。
应该先更新库,再更新缓存
就算先更新库,再更新缓存,还是会有极端情况出现导致不一致
解决方案,延迟双删
最后总结
- 要保证缓存与数据库强一致,最好的办法是分布式锁,但那样并发性能就完蛋。
- Cache Aside Pattern + 延迟双删无锁方案只能在保证并发的前提下尽可能减少不一致的可能。
标签:
最新文章推荐
- 陕西7名核酸检测阳性外省游客活动轨迹公布
- 万人说新疆 | 棉花朵朵赛白云,阿克苏美出新高度!
- 万人说新疆 | 孙芳红:我在新疆每天过得很充实也很快乐
- 万人说新疆 | 棉农阿卜来提开心地笑了
- 万人说新疆 | 阿迪力的棉花合作社年入300万
- 四川乐山犍为县发生4.3级地震 无人员伤亡
- 西安全面开展排查管控 目前20481人核酸检测结果均阴性
- 陕西7名核检阳性者为一旅行团同行人员 活动轨迹公布
- 西安交大举行2021级本科生迎新会 校长:学习是主动作为之事
- 【母亲河畔的中国】黄河岸边的这个村庄如何打好旅游服务牌?
资讯中心
2022-08-29
2022-06-20
2021-10-18
2021-10-18
热点资讯
-
1
全球短讯!缓存一致性如何保障
-
2
“粽”享端午 暖“新”服务 嵩明县总工会和新就业形态劳动者一起过端午 环球热闻
-
3
江西省新干县发布暴雨蓝色预警
-
4
北部湾发生5.0级地震 震源深度20千米|即时
-
5
极氪回应极氪X搭载不同厂家电芯事件 快讯
-
6
每日消息!excel公式不显示结果只显示错误(excel公式不显示结果)
-
7
景泰县第三幼儿园举办毕业典礼
-
8
开拓就业渠道 做好就业指导
-
9
日本强推核污染水排海,日本民众:不应做危害子孙后代的事
-
10
56岁著名植物学家张大兵遭遇重大交通事故逝世
-
11
天天即时看!选手同台竞技,广西这场舞林争霸总决赛激情开赛
-
12
香港一客机中止起飞!紧急疏散,11人称受伤 世界观点
-
13
支付宝投诉成立退钱吗?如何退还?
-
14
世界新消息丨八部门联合发文加快推进深远海养殖发展
-
15
半瓶神仙醋有哪些游戏_半瓶神仙醋
-
16
iphone 15_iphone 1
-
17
消息!气体溶解度的影响因素有哪些(气体溶解度)
-
18
即时:2023年端午档首日票房破亿《消失的她》强势领跑
-
19
放假接老板的电话,会影响员工的健康-世界微速讯
-
20
鼻子塞住了怎么办用什么方法_鼻子塞住了怎么办