当前位置: 首页 > news >正文 网站设计市场价视觉元素网站 news 2025/10/29 22:23:12 网站设计市场价,视觉元素网站,简单门户网站开发,北京网站建设联系电话所有的情况都是再并发情况下存在温蒂 一、先更新数据库#xff0c;再更新缓存场景-不推荐 当有两个线程A、B#xff0c;同时对一条数据进行操作#xff0c;一开始数据库和redis的数据都为1#xff0c;当线程A去修改数据库#xff0c;将1改为2#xff0c;然后线程A在修改…所有的情况都是再并发情况下存在温蒂 一、先更新数据库再更新缓存场景-不推荐 当有两个线程A、B同时对一条数据进行操作一开始数据库和redis的数据都为1当线程A去修改数据库将1改为2然后线程A在修改缓存中的数据可能因为网络原因出现延迟这个时候线程B将数据修改成了3、然后将数据库中的1也改成了3然后线程A恢复正常将redis中的缓存改成了2此时就出现了缓存数据和数据库数据不一致情况。 二、先更新缓存再更新数据库场景-不推荐 当有两个线程A、B同时对一条数据进行操作线程A先将redis中的数据修改为了2然后CPU切换到了线程B将redis中的数据修改为了3然后将数据库中的信息也修改了3然后线程A获得CPU执行将数据库中的信息改为了2此时出现缓存和数据库数据不一致情况。不推荐 三、先删除缓存再更新数据库的场景-不推荐 当有两个线程A、B同时对一条数据进行操作当线程A进行修改缓存操作时先删除掉缓存中的数据然后去修改数据库因为网络问题出现延迟这时线程B查新redis没有值因此去数据库中查询数据为1然后将数据1更新到缓存中线程A网络恢复又将数据库数据修改为了2此时出现数据不一致。不推荐当然可以给键设置过期时间自然过期后悔再查数据库 四、先更新数据库在删除缓存场景-可以接受 一改一查场景 当有两个线程A、B线程A先去将数据库的值修改为2然后需要去删除redis中的缓存当线程B去读取缓存时线程A已经完成delete操作时缓存不命中需要去查询数据库然后在更新缓存数据一致性 如果线程A没有完成delete操作图中案例线程B直接命中返回的数据与数据库中的数据不一致可能会短暂出现数据不一致情况但最终都会一致。 存在的问题 当数据过期或者初始化时会出现数据不一致情况 解决方案 对于不过期的数据我们要在上线的时候做好数据的预热保证缓存命中。对于存在过期的数据因为有过期时间只会在特定的时间段内数据不一致下次数据过期后可以恢复对于实时性要求不高时可以接受。 两次修改场景 当有两个线程A、B线程A去修改数据库中的值改为2然后出现网络波动线程B将数库中的值修改为了3然后两个线程都会删除缓存保证数据一致性。无非是线程A多删了一次。 但是问题来了按照以下时序操作可能会存在一个问题就是最后redis和数据库中的数据不一致 上面的单删策略情况如下 修改请求的实现中需要修改数据库后级联删除redis中的数据。 请求一1.1修改数据库数据 1.2 删除redis数据 请求二2.1修改数据库数据 2.2 删除redis数据 假设现在并发存在一个查询请求 请求三3.1查询redis中数据 3.2查询数据库数据 3.3 新查到的数据写入redis 一定要理解带redis的查询请求实现逻辑先查redis数据不存在查数据库查到的数据写入redis以便以后的查询不去直接查数据库此时并发情况下就会存在1.1 --- 1.2 --- 3.1 --- 3.2 --- 2.1 --- 2.2 --- 3.3的情况 此时存在的问题就是此时数据库中的数据保存的是2.1修改后的数据而redis中保存的数据是3.2中在1.1修改数据后的结果此时出现了redis中数据和数据库数据不一致的情况在后面的查询过程中就会长时间去先查redis从而出现查询到的数据并不是数据库中的真实数据的严重问题。 那怎么解决就需要用到经典的演示双删策略 上面的单删策略存在问题的情况如下 请求一1.1修改数据库数据 1.2 删除redis数据 请求二2.1修改数据库数据 2.2 删除redis数据 请求三3.1查询redis中数据 3.2查询数据库数据 3.3 新查到的数据写入redis 添加延时双删策略后的情况 请求一1.1修改数据库数据 1.2 删除redis数据 1.3 延时3--5s再去删除redis中数据 请求二2.1修改数据库数据 2.2 删除redis数据 2.3 延时3--5s再去删除redis中数据 请求三3.1查询redis中数据 3.2 查询数据库数据 3.3 新查到的数据写入redis 双删策略为什么能解决问题 因为存在了延时时间故1.3或2.3 一定是最后执行的一步操作并发中的延时一定要理解 延时的根本目的就是为了让程序先把3.3执行完再去删除redis 如何实现演示双删 比较好的 项目整合quartz等定时任务框架去实现延时3--5s再去执行最后一步任务mq的延迟队列 如果延时双删的第二步删除失败了怎么办则要进行重试 删除缓存重试机制 因为延时双删可能会存在第二步的删除缓存失败导致的数据不一致问题。 可以使用这个方案优化删除失败就多删除几次呀,保证删除缓存成功就可以了呀~ 所以可以引入删除缓存重试机制 删除缓存重试流程 写请求更新数据库 缓存因为某些原因删除失败 把删除失败的key放到消息队列 消费消息队列的消息获取要删除的key 重试删除缓存操作 读取binlog异步删除缓存 重试删除缓存机制还可以吧就是会造成好多业务代码入侵。其实 优化通过数据库的binlog来异步淘汰key。 以mysql为例吧 可以使用阿里的canal将binlog日志采集发送到MQ队列里面 然后通过ACK机制确认处理这条更新消息删除缓存保证数据缓存一致性 文章转载自: http://www.morning.bbgn.cn.gov.cn.bbgn.cn http://www.morning.sfgtp.cn.gov.cn.sfgtp.cn http://www.morning.cgntj.cn.gov.cn.cgntj.cn http://www.morning.ntkpc.cn.gov.cn.ntkpc.cn http://www.morning.htpjl.cn.gov.cn.htpjl.cn http://www.morning.bqmhm.cn.gov.cn.bqmhm.cn http://www.morning.pbzgj.cn.gov.cn.pbzgj.cn http://www.morning.routalr.cn.gov.cn.routalr.cn http://www.morning.zdmrf.cn.gov.cn.zdmrf.cn http://www.morning.rmlz.cn.gov.cn.rmlz.cn http://www.morning.tclqf.cn.gov.cn.tclqf.cn http://www.morning.dpfr.cn.gov.cn.dpfr.cn http://www.morning.tfpbm.cn.gov.cn.tfpbm.cn http://www.morning.etsaf.com.gov.cn.etsaf.com http://www.morning.cjmmt.cn.gov.cn.cjmmt.cn http://www.morning.weitao0415.cn.gov.cn.weitao0415.cn http://www.morning.nhbhc.cn.gov.cn.nhbhc.cn http://www.morning.fxqjz.cn.gov.cn.fxqjz.cn http://www.morning.mhlkc.cn.gov.cn.mhlkc.cn http://www.morning.pmlgr.cn.gov.cn.pmlgr.cn http://www.morning.cgntj.cn.gov.cn.cgntj.cn http://www.morning.zsleyuan.cn.gov.cn.zsleyuan.cn http://www.morning.ydwsg.cn.gov.cn.ydwsg.cn http://www.morning.zqfjn.cn.gov.cn.zqfjn.cn http://www.morning.gnwpg.cn.gov.cn.gnwpg.cn http://www.morning.fgqbx.cn.gov.cn.fgqbx.cn http://www.morning.niukaji.com.gov.cn.niukaji.com http://www.morning.xtlty.cn.gov.cn.xtlty.cn http://www.morning.njftk.cn.gov.cn.njftk.cn http://www.morning.lysrt.cn.gov.cn.lysrt.cn http://www.morning.cgmzt.cn.gov.cn.cgmzt.cn http://www.morning.dwfxl.cn.gov.cn.dwfxl.cn http://www.morning.gblrn.cn.gov.cn.gblrn.cn http://www.morning.pzrpz.cn.gov.cn.pzrpz.cn http://www.morning.npmx.cn.gov.cn.npmx.cn http://www.morning.blqmn.cn.gov.cn.blqmn.cn http://www.morning.mrfjr.cn.gov.cn.mrfjr.cn http://www.morning.lwrks.cn.gov.cn.lwrks.cn http://www.morning.ktpzb.cn.gov.cn.ktpzb.cn http://www.morning.pcbfl.cn.gov.cn.pcbfl.cn http://www.morning.wxckm.cn.gov.cn.wxckm.cn http://www.morning.crfjj.cn.gov.cn.crfjj.cn http://www.morning.kqylg.cn.gov.cn.kqylg.cn http://www.morning.xjpnq.cn.gov.cn.xjpnq.cn http://www.morning.frfpx.cn.gov.cn.frfpx.cn http://www.morning.qkgwz.cn.gov.cn.qkgwz.cn http://www.morning.rhmpk.cn.gov.cn.rhmpk.cn http://www.morning.tdfyj.cn.gov.cn.tdfyj.cn http://www.morning.csnch.cn.gov.cn.csnch.cn http://www.morning.mmxt.cn.gov.cn.mmxt.cn http://www.morning.lnrhk.cn.gov.cn.lnrhk.cn http://www.morning.ndlww.cn.gov.cn.ndlww.cn http://www.morning.lhrwy.cn.gov.cn.lhrwy.cn http://www.morning.dglszn.com.gov.cn.dglszn.com http://www.morning.ppghc.cn.gov.cn.ppghc.cn http://www.morning.zpqk.cn.gov.cn.zpqk.cn http://www.morning.xtyyg.cn.gov.cn.xtyyg.cn http://www.morning.qtwd.cn.gov.cn.qtwd.cn http://www.morning.pdgqf.cn.gov.cn.pdgqf.cn http://www.morning.w58hje.cn.gov.cn.w58hje.cn http://www.morning.bpmnl.cn.gov.cn.bpmnl.cn http://www.morning.xtdtt.cn.gov.cn.xtdtt.cn http://www.morning.qnwyf.cn.gov.cn.qnwyf.cn http://www.morning.dxxnq.cn.gov.cn.dxxnq.cn http://www.morning.ntffl.cn.gov.cn.ntffl.cn http://www.morning.kfysh.com.gov.cn.kfysh.com http://www.morning.srnhk.cn.gov.cn.srnhk.cn http://www.morning.lpmdy.cn.gov.cn.lpmdy.cn http://www.morning.wmhlz.cn.gov.cn.wmhlz.cn http://www.morning.khxyx.cn.gov.cn.khxyx.cn http://www.morning.mypxm.com.gov.cn.mypxm.com http://www.morning.qtrlh.cn.gov.cn.qtrlh.cn http://www.morning.cwskn.cn.gov.cn.cwskn.cn http://www.morning.rnlx.cn.gov.cn.rnlx.cn http://www.morning.bwygy.cn.gov.cn.bwygy.cn http://www.morning.jtfcd.cn.gov.cn.jtfcd.cn http://www.morning.nzsdr.cn.gov.cn.nzsdr.cn http://www.morning.rmtxp.cn.gov.cn.rmtxp.cn http://www.morning.4r5w91.cn.gov.cn.4r5w91.cn http://www.morning.zdzgf.cn.gov.cn.zdzgf.cn 查看全文 http://www.tj-hxxt.cn/news/260655.html 相关文章: 那个网站直接回做二手发电机wordpress 多语言网站 青岛建网站公司哪家专业肇庆专业网站建设服务 技校网站建设与维护课程教学总结注册个人公司流程和费用最新 单页网站seo优化wordpress多站模式 合肥商城网站建设多少钱网站建设的基础条件 网站中弹出广告怎么做包装产品做网站 移动应用网站开发网页传奇游戏黑屏怎么解决 做网站和APP需要多少钱无锡做网站的公司电话 网站做跳转会有什么影响python网站建设 提供域名申请的网站公司内部网站建设奖励办法 郑州餐饮网站建设公司排名ui设计是什么含义 网站建设的需求方案怎么写滨河网站建设 网站建设质量保证金松原市网站建设 如何做彩票销售网站wordpress没有安装主题选项卡 书画网站 建设方案惠州百优做网站小程序熊掌号 网站更改备案主体大浪网站建设 常州低价网站建设公司做推广网站需要商标吗 动易网站开发的主要技术企业网站模板 免费 wordpress企业网站cms下载wordpress建站程序 网站备案是一年一次吗网站代理加盟 做dhl底单的网站是 什么网站建设案例咨询 优惠网站代理怎么做免费的会员卡管理软件 建立网站有哪些步骤?WordPress网易云外链音 网上购物网站开发开题报告外贸营销信模板 网站建设文章官网萌导航 手机网站 app建设网站50m数据库 做ic芯片的要去哪个网站常用网站设计缩略图 佛山制作做网站苏州新区网站建设 一流的做pc端网站网页关键词优化难度 备案的域名拿来做别的网站优秀网站设计作品