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

深圳龙岗区布吉街道太原网站优化教程

深圳龙岗区布吉街道,太原网站优化教程,网站建设 浙icp 0578,电商论坛前言 Redis 作为一门热门的缓存技术#xff0c;引入了缓存层#xff0c;就会有缓存异常的三个问题#xff0c;分别是缓存击穿、缓存穿透、缓存雪崩。我们用本篇文章来讲解下如何解决#xff01; 缓存击穿 缓存击穿: 指的是缓存中的某个热点数据过期了#xff0c;但是此…前言 Redis 作为一门热门的缓存技术引入了缓存层就会有缓存异常的三个问题分别是缓存击穿、缓存穿透、缓存雪崩。我们用本篇文章来讲解下如何解决 缓存击穿 缓存击穿: 指的是缓存中的某个热点数据过期了但是此时大量的并发请求访问这个key的值此时因为缓存过期无法从缓存中获取直接访问数据库数据库很容易就会被这些高并发的请求冲垮这就是缓存击穿。 解决方案 热点数据不要设置过期时间或者在热点数据即将要过期前提前通过后台线程更新缓存以及重新设置过期时间互斥锁方案如果该key的数据更新了那么就通过互斥锁的方式将其更新。 缓存穿透 缓存穿透假如用户访问的数据既不在缓存中也不在数据库。于是请求在访问缓存时发现缓存没有命中继续访问数据库发现数据库中也没有对应的key值。当有大量这样的并发请求到来时数据库的压力激增这就是缓存穿透。 如上图红框所示一般缓存穿透是遭遇了恶意请求或者业务误删缓存跟数据库导致缓存和数据库中都没有数据。 应对缓存穿透一般是下面两种方案。 1. 缓存空值或者默认值 出现缓存穿透的现象时我们可以针对查询的数据在缓存中设置一个空值或者默认值这样后续请求就可以从缓存中读取到空值或者默认值从而不会继续查询数据库。 2. 使用布隆过滤器推荐 布隆过滤器是一种数据结构更准确的说是一种概率型的数据结构因为它能判断某个元素一定不存在或者是可能存在。 在写入数据库数据时使用布隆过滤器做个标记然后在用户请求到来时业务线程确认缓存失效后可以通过查询布隆过滤器快速判断数据是否存在如果不存在就不用通过查询数据库来判断数据是否存在。 缓存雪崩 通常为了保证缓存中的数据与数据库中的数据一致性我们会给 Redis 里的数据设置过期时间当缓存数据过期后用户访问的数据无法命中缓存业务系统需要重新生成缓存因此就会访问数据库并将数据更新到 Redis 里。 缓存雪崩: 就是指在大量的应用请求无法在 Redis 缓存中进行处理然后应用将大量请求发送到数据库层导致数据库层的压力骤增。 一般是以下两种情况导致的 缓存中的大量数据在同一时间过期导致大量请求无法得到处理。Redis 缓存实例发生故障宕机了无法处理请求导致大量请求一下子积压到数据库层面 大量数据同时过期 解决方案 过期时间添加随机数 首先我们要避免给大量的数据设置相同的过期时间。如果业务真的有这个需求我们可以在用 EXPIRE 命令给每个数据设置过期时间时给这些数据的过期时间增加一个较小的随机数既能避免了大量数据同时过期又保证了这些数据基本在相近的时间失效依然能满足业务需求。 互斥锁 当业务线程在处理用户请求时如果发现访问的数据不在 Redis 里就加个互斥锁保证同一时间内只有一个请求来构建缓存当缓存构建完毕后再释放锁。未能获取互斥锁的请求要么等待锁释放后重新读取缓存要么就返回空值或者默认值。 Redis 故障宕机 解决方案 服务熔断或请求限流 发生缓存雪崩时为了防止引发连锁的数据库雪崩甚至是整个系统的崩溃我们暂停业务应用对缓存系统的接口访问。具体点说就是业务应用调用缓存接口时缓存客户端并不把请求发给 Redis 缓存实例而是直接返回等到 Redis 缓存实例重新恢复服务后再允许应用请求发送到缓存系统。 为了减少对业务的影响我们可以启用请求限流机制只将少部分请求发送到数据库进行处理再多的请求就在入口直接拒绝服务等到 Redis 恢复正常并把缓存预热完后再解除请求限流的机制。 构建 Redis 缓存高可靠集群 如果 Redis 缓存的主节点故障宕机了从节点可以切换成为主节点继续提供缓存服务避免了由于缓存实例宕机而导致的缓存雪崩问题。 总结 关于缓存中常见的三个线上问题我们总结了原因以及解决方案希望能够帮助可能在线上使用缓存的开发工程师们未雨绸缪
http://www.huolong8.cn/news/34498/

相关文章:

  • 自己做网站 有名网站空间需要备案吗
  • 汕头网站建设公司有哪些wordpress 嵌入 php
  • 张家港网站建设服务石家庄网站建设教程
  • 昆山网站建设多少钱室内装修设计学校哪里好
  • 青岛网站建设找网站备案率是什么
  • 网站建设项目确认书qq推广方法
  • 西安网站设计怎么自己建立一个网站后台
  • 电子商务建设网站西安做网站公司哪家好
  • 网站建设捌金手指花总十三网站开发及运营成本
  • 客户为什么需要建站服务如何设立邮箱和网站
  • 网上哪个网站做的系统好用吗文职人员招聘2023官网
  • 自己的博客和自己的网站做友链导游网站后台
  • 个人网站建设心得网络营销推广计划步骤有哪些
  • 网站建设的实验心得公众号平台注册
  • 郑州网站建设哪家有广西茶叶学会 网站建设
  • 连云港人才专业化网站网站建设教程简笔画
  • 帝国cms网站模板有效的小企业网站建设
  • 厦门企业网站开发网络营销公司全网天下
  • 沈阳做网站多少钱发外链的网站排名
  • 开发微网站和小程序网站开发设计各部门职责
  • 0基础学做网站教程给一个网站如何做推广
  • 北京建设工程交易协会网站济南信息化网站
  • 黄石企业网站设计深圳网站建设找哪家公司
  • 通州微网站优化wordpress如何获取会员字段
  • 哪家公司的网站做得好网站规划与建设
  • 昆明cms建站模板粉末涂料做网站有用吗
  • 030159网站建设与维护h网站模版
  • 企业管理网站在哪些网站做外贸好
  • it网站设计培训建筑工程网格化管理实施方案
  • wap网站开发 php襄阳手机网站建设