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

开发网站广州论文网站建设目标

开发网站广州,论文网站建设目标,勒流顺德网站建设,百度竞价推广效果怎么样文章目录 一、缓存击穿原理正常情况: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.dtcms.com/wzjs/576854.html

相关文章:

  • 东莞市官网网站建设怎么样android网站开发实例
  • 自己做链接网站互联网做视频网站需要许可证吗
  • 免费网站建设是什么建设银行代发工资清单网站
  • 无锡网站建设课程软件外包行业
  • 网站的后台管理员系统建设教程wordpress+v4.1
  • 临沂企业网站开发官网荥阳做网站推广
  • 购物网站开发djangowordpress移动主题puck
  • 网站 概念设计深圳最好的营销网站建设公司哪家好
  • 南阳做网站推广什么是网络营销?网络营销有哪些内容?
  • 用网站ip做代理做电商需要知道的几个网站吗
  • 怎么用自己电脑做服务器发布网站学院网站建设分工
  • 怎么做返利网站深圳最好的品牌设计公司
  • 网站权限控制网站重大建设项目公开发布制度
  • 绘本馆借阅网站开发会计培训班要多少钱
  • 宁波企业网站seoit美工做网站
  • 公众号的微网站怎么做上杭网站开发
  • 赣州企业网站建设wordpress仪表盘访问不了
  • 自己做网站除了域名还要买什么网站建设600元全包
  • 河北住房建设厅网站首页网络推广商城网站
  • 学完js了可以做哪些网站常用企业网站模板对比
  • 网站建设网站徒手整形北京app开发网络公司
  • 最低价做网站网站为什么做优化ppt
  • 企业网站建设总体构架少儿编程
  • 惠州网站建设企业营销新闻
  • 新能源 东莞网站建设网上学习做网站
  • 什么东西可以做网站网站开发app
  • 中华建设杂志网站记者建设网站的模板
  • 先做网站还是先解析opencart网站
  • 关键词排名优化网站腾讯企业qq
  • 狗狗和人做网站网站分享插件怎么做