Redis和MySQL如何保证一致性
Redis和MySQL如何保证一致性
IT袋网网小编为你介绍Redis和MySQL如何保证一致性的相关介绍,接下来IT袋网带大家一起了解。
可以采用「先更新数据库,再删除缓存」的更新策略+过期时间来兜底。
我们用「读 + 写」请求的并发的场景来分析。
假如某个用户数据在缓存中不存在,请求 A 读取数据时从数据库中查询到年龄为 20,在未写入缓存中时另一个请求 B 更新数据。
它更新数据库中的年龄为 21,并且清空缓存。这时请求 A 把从数据库中读到的年龄为 20 的数据写入到缓存中。

最终,该用户年龄在缓存中是 20(旧值),在数据库中是 21(新值),缓存和数据库数据不一致。
从上面的理论上分析,先更新数据库,再删除缓存也是会出现数据不一致性的问题,但是在实际中,这个问题出现的概率并不高。
因为缓存的写入通常要远远快于数据库的写入,所以在实际中很难出现请求 B 已经更新了数据库并且删除了缓存,请求 A 才更新完缓存的情况。
而一旦请求 A 早于请求 B 删除缓存之前更新了缓存,那么接下来的请求就会因为缓存不命中而从数据库中重新读取数据,所以不会出现这种不一致的情况。
所以,「先更新数据库 + 再删除缓存」的方案,是可以保证数据一致性的。
而且为了确保万无一失,还给缓存数据加上了「过期时间」,就算在这期间存在缓存数据不一致,有过期时间来兜底,这样也能达到最终一致。
上述就是Redis和MySQL如何保证一致性的技术经验小知识,以上内容供大家学习了解!
相关阅读
-
简单的网站搭建教程 创建自己的网站平台的注意事项
为大家分享简单的网站搭建教程和创建自己的网站平台的注意事项方面的介绍,具体详情如下: 如何快速创建一个个人网站,好大的话题,不过这个也可以用会者不难来形容,所以今天我们只
-
企业建设网站应如何申请注册 网上注册公司入口
本文摘要:企业建设网站应如何申请注册和网上注册公司入口方面的知识,接下来IT袋带大家一起了解。 业网站的注册过程可能对于一些初创企业来说比较繁琐,但它是推广企业品牌的重要途
-
什么是802.1X协议 802.1x是什么意思
小编为你介绍什么是802.1X协议方面的知识,接下来分享详细内容。 一、引言 网络安全是企业和个人必须关注的问题。随着网络技术的发展,网络安全威胁也日益增加。802.1X是一个基于端口的网
-
什么是Python多进程 如何实现?
IT电脑小知识篇,关于什么是Python多进程的相关经验,一起来了解了解吧。 什么是多进程 多进程用于执行多个进程的并行执行。 它可以帮助实现真正的并行性,因为可以同时执行不同的进程,


