摘要:缓存失效策略失效缓存更新数据库数据缺点如果缓存失效失败根据策略可能会影响后续的正常的数据更新操作直接失效缓存会增加后续的一次缓存查询的优点避免数据库更新成功缓存失效失败导致缓存中是旧数据场景对缓存准确率要求比较高的业务异常情况线程需
缓存失效策略 失效缓存---->更新数据库数据
缺点
如果缓存失效失败,根据策略可能会影响后续的正常的数据更新操作
直接失效缓存会增加后续的一次缓存查询的Miss
优点
避免数据库更新成功,缓存失效失败,导致缓存中是旧数据
场景
对缓存准确率要求比较高的业务
异常情况
线程A需要更新数据库数据,失效缓存;线程B发现缓存没有命中,查询数据库中取出旧的值;线程A更新数据库数据,提交事务,线程A将数据放入缓存
更新数据库数据---->失效缓存
缺点
如果数据更新成功,但是缓存失效失败,缓存中存放的是旧数据
直接失效缓存会增加一次缓存查询的Miss
优点
更新数据不会强依赖缓存,就算失效缓存失败,也不会影响数据库的更新
场景
对缓存和数据库的一致性要求不是很高的场景
异常情况
在更新数据库数据和失效缓存之前的所有查询,查询到的都是旧数据
更新数据库数据---->更新缓存
优点
避免了一次额外的缓存查询Miss
缺点
数据库更新成功,但是更新缓存失败,缓存中存储的是旧数据
场景
缓存粒度比较小,缓存的数据不需要经过计算(更新商品数据,但是缓存还需要用户数据)
异常情况
A线程查询缓存发现缓存中没有数据,查询数据库;B线程更新数据库并且更新了缓存;A再把查询的数据放入缓存,缓存中将会是旧数据
更新缓存---->更新数据库数据
优点
避免了一次额外的缓存查询Miss
缺点
缓存更新成功,但是数据库更新失败,导致缓存数据是旧数据;并且更新缓存失败,根据策略可能导致更新数据库失败
场景
缓存粒度比较小,缓存的数据不需要经过计算(更新商品数据,但是缓存还需要用户数据)
异常情况
在更新缓存成功和更新数据库数据之前拿到的缓存是和数据库不一致的(不过这种情况造成的负面影响很小)
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/61811.html
摘要:物理计算机并发问题在介绍内存模型之前,先简单了解下物理计算机中的并发问题。基于高速缓存的存储交互引入一个新的问题缓存一致性。写入作用于主内存变量,把操作从工作内存中得到的变量值放入主内存的变量中。 物理计算机并发问题 在介绍Java内存模型之前,先简单了解下物理计算机中的并发问题。由于处理器的与存储设置的运算速度有几个数量级的差距,所以现代计算机加入一层读写速度尽可能接近处理器的高速缓...
摘要:小白如何轻松写出高性能前端页面一从减少请求开始下面分别从以下几点开篇图片地图,,内联图片,样式表合并,脚本文件合并。操作原理通过合并图片减少请求,并且比图片地图更灵活,降低下载量,合并后图片比分离的图片总和要小。 小白如何轻松写出高性能web前端页面 一.从减少HTTP请求开始 下面分别从以下几点开篇:图片地图,CSS Sprites,内联图片,样式表合并,脚本文件合并。 1.图片地图...
摘要:小白如何轻松写出高性能前端页面一从减少请求开始下面分别从以下几点开篇图片地图,,内联图片,样式表合并,脚本文件合并。操作原理通过合并图片减少请求,并且比图片地图更灵活,降低下载量,合并后图片比分离的图片总和要小。 小白如何轻松写出高性能web前端页面 一.从减少HTTP请求开始 下面分别从以下几点开篇:图片地图,CSS Sprites,内联图片,样式表合并,脚本文件合并。 1.图片地图...
阅读 2248·2021-10-11 10:59
阅读 2584·2021-10-11 10:58
阅读 3284·2021-09-08 09:35
阅读 3711·2021-09-02 15:21
阅读 1415·2019-08-30 15:53
阅读 2564·2019-08-29 14:16
阅读 2049·2019-08-26 14:00
阅读 2924·2019-08-26 13:52