掘地三尺搞定Redis与MySQL数据一致性问题(3)

2023-04-24 来源:飞速影视
使用 cache-aside 模式写数据时,如下流程。

掘地三尺搞定Redis与MySQL数据一致性问题


旁路缓存写数据
写数据到数据库;将缓存中的数据失效或者更新缓存数据;
使用 cache-aside 时,最常见的写入策略是直接将数据写入数据库,但是缓存可能会与数据库不一致。
我们应该给缓存设置一个过期时间,这个是保证最终一致性的解决方案。
如果过期时间太短,应用程序会不断地从数据库中查询数据。同样,如果过期时间过长,并且更新时没有使缓存失效,缓存的数据很可能是脏数据。
最常用的方式是删除缓存使缓存数据失效。
为啥不是更新缓存呢?
性能问题
当缓存的更新成本很高,需要访问多张表联合计算,建议直接删除缓存,而不是更新缓存数据来保证一致性。
安全问题
在高并发场景下,可能会造成查询查到的数据是旧值,具体待会码哥会分析,大家别急。

2.2 Read-Through(直读)


当缓存未命中,也是从数据库加载数据,同时写到缓存中并返回给应用系统。
虽然 read-through 和 cache-aside 非常相似,在 cache-aside 中应用系统负责从数据库获取数据和填充缓存。
而 Read-Through 将获取数据存储中的值的责任转移到了缓存提供者身上。

掘地三尺搞定Redis与MySQL数据一致性问题


Read-Through
相关影视
合作伙伴
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)

www.fs94.org-飞速影视 粤ICP备74369512号