当前位置: 首页 > news >正文

广州手机网站定制咨询凤凰网全国疫情实时动态

广州手机网站定制咨询,凤凰网全国疫情实时动态,青海省公路建设服务网站,做网站首页的要素文章目录 一、缓存击穿原理正常情况:Redis缓存流程问题引出:Redis缓存击穿问题 二、解决方案方案一:互斥锁方案二:逻辑过期 一、缓存击穿原理 正常情况:Redis缓存流程 查询数据时,优先查询Redis&#xff1…

文章目录

  • 一、缓存击穿原理
      • 正常情况:Redis缓存流程
      • 问题引出:Redis缓存击穿问题
  • 二、解决方案
      • 方案一:互斥锁
      • 方案二:逻辑过期


一、缓存击穿原理

正常情况:Redis缓存流程

查询数据时,优先查询Redis:

  • 命中:直接返回查询结果
  • 未命中:查询数据库,返回数据并将数据写入到Redis中缓存起来方便下次查询

在这里插入图片描述

问题引出:Redis缓存击穿问题

给某一个key设置了过期时间,当key过期的时候,恰好这时间点对这个key有大量的并发请求过来,这些并发的请求可能会瞬间把数据库压垮

在这里插入图片描述


二、解决方案

方案一:互斥锁

并发请求时:
请求1(线程1) 查询缓存中的数据,若未命中,则会获取互斥锁,然后查询数据库并写入缓存。
在数据写入缓存期间,其他线程(线程2)没查到缓存中的数据,也获取不到互斥锁时,则会进入休眠状态,一段时间后再重新查询缓存数据,如此反复
直到请求1(线程1) 将数据缓存完才会释放锁
数据缓存并释放锁后,此时其他线程(线程2)会在不断重试的过程中直到命中缓存数据,才会返回查询数据

在这里插入图片描述

  • 优点:安全性高 强一致性
  • 缺点:性能差 (因为其他线程都要休眠等待,直到命中缓存数据)

方案二:逻辑过期

不设置过期时间,采用逻辑过期时间

并发请求时:
请求1(线程1) 查询缓存数据,发现逻辑过期,则获取互斥锁,开启新线程后就直接返回过期数据。
在新线程中查询数据库并重新写入缓存,然后释放锁
在数据写入缓存期间,其他线程(线程3) 查询缓存数据,发现逻辑过期,则直接返回过期数据。
在数据写入缓存并释放锁后,**其他线程(线程4)**查询缓存数据,命中数据并未过期,则直接返回查询数据。

在这里插入图片描述

  • 优点:
    • 高可用
    • 性能高 直接返回结果,无需等待缓存重新写入(更新)
  • 缺点:不考虑数据一致性
http://www.yidumall.com/news/70384.html

相关文章:

  • 苏州网页制作培训班seo的基本步骤
  • 网站如何防盗链请简述网络营销的特点
  • 郑州做网站哪个公司好百度竞价优化排名
  • 重庆专业建网站重庆网站推广联系方式
  • 云端网站建设软文广告图片
  • 百度怎么收录我的网站湖南企业seo优化报价
  • 黄埔网站建设国产搜什么关键词最好看
  • 加强网站备案管理专项行动最近的新闻热点时事
  • 北京住房和城乡建设局门户网站什么是引流推广
  • 专做装修的网站谷歌代运营
  • 做代账的网站天眼查询个人
  • 搜索引擎技巧惠州市seo广告优化营销工具
  • 小型企业网站开发公司网页设计个人主页
  • 建网站赚钱合肥百度竞价推广代理公司
  • 北京建设信源网站 怎么打不开外贸seo推广公司
  • 无锡做公司网站多少钱定制网站制作公司
  • 网站类型是什么意思舆情信息在哪里找
  • 建筑资料网站大全网站的推广方法有哪些
  • 马鞍山做网站公司排名合肥网站seo推广
  • 网站建设开发能力很强的企业解释seo网站推广
  • 上海市城乡建设委员会网站每日新闻简报
  • 制作大型网站开发怎么在百度上做广告
  • 什么网站可以做任务领赏金seo链接优化
  • 国外域名注册商排名seo指的是搜索引擎营销
  • 石家庄市和城乡建设局网站百度山西授权代理
  • 网站建设需要哪些证件谷歌google官网入口
  • html5 手机网站开发教程汉中网络推广
  • 怎么免费做网站百度推广软件
  • 幼儿网站源代码济南搜索引擎优化网站
  • 鄂尔多斯教育网站入口业务推广方式有哪些