首页 > 其他分享 >后端缓存的使用-问题-方案

后端缓存的使用-问题-方案

时间:2024-03-22 21:22:35浏览次数:19  
标签:方案 缓存 过期 数据库 Cache DB 雪崩 使用

后端缓存的使用-问题-方案

更新策略

更DB, 删Cache

问题: 中间过程中, 可能会有其他进行获取Cache, 导致出现不一致

删缓存, 更DB

问题: 中间过程中, 可能会有其他进行获取Cache, 因为不存在缓存, 主动拉取, 导致DB与Cache出现不一致

延迟双删

删缓存, 更DB, 再删缓存.

引入了一个更多的操作, 最坏情况下有可能退化为方案1, 即在更新DB到第二次删缓存期间, 依然有可能引入不一致.

基本策略

  1. 设置缓存过期时间, 控制不一致问题的影响范围.
  2. 如果追求强一致性, 可以考虑锁控制 以及分布式事务来处理, 但是太复杂了.

缓存穿透

定义

缓存穿透是指调用方查询一个不存在的数据时,由于在缓存不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致每次请求这个不存在的数据都要到数据库中去查询,从而给数据库带来压力。缓存穿透一般是由外部恶意攻击(爬虫等)引起的。

解决方案

  1. 非法请求的校验
  2. 缓存空对象
  3. 布隆过滤器

缓存雪崩

定义

缓存雪崩是指当大量缓存数据同时过期,瞬间访问数据库的流量陡增,导致数据库压力过大时直接崩溃,甚至数据库无法直接重启。

解决方案

  1. 预热
  2. 降级/兜底
  3. TTL 随机处理
  4. 如果不能接受数据库的大量请求, 可以设置TTL永不淘汰, 手动删除

缓存击穿

定义

缓存击穿是指热点key在某个时间点过期,而此时恰好服务收到对这个key的大量并发请求,缓存失效,进而增大数据库的压力。缓存击穿与缓存雪崩类似,不同之处在于缓存击穿是热点key过期,而缓存雪崩是不同数据同时过期。

解决方案

  1. 热点Key设置不过期
  2. 分布式锁控制实现串行化

标签:方案,缓存,过期,数据库,Cache,DB,雪崩,使用
From: https://www.cnblogs.com/pDJJq/p/18090440/use-of-the-backend-cachequestionscheme-z1uhatt

相关文章

  • 瑞_Redis_商户查询缓存_什么是缓存
    文章目录项目介绍1短信登录2商户查询缓存2.1什么是缓存2.1.1缓存的应用场景2.1.2为什么要使用缓存2.1.3Web应用中缓存的作用2.1.4Web应用中缓存的成本附:缓存封装工具类......
  • 使用ultraliso制作U盘启动工具步骤
    首先准备一个空U盘,iso文件,然后再ultraliso内部分别读取相应文件夹点击启动,写入硬盘驱动 点击写入 等待写入完成即可 ......
  • AI对就业的影响与解决方案
    目录前言1AI对各行业的影响1.1AI在各行业的广泛应用1.2新兴职业的崛起1.3传统职业面临的挑战2可能被自动化取代的工作2.1重复性低技能门槛的岗位2.2高度重复的劳动3不能被取代的工作3.1需要人类智慧和情感的职业3.2高度人际互动和情感体验的职业4解决方案4......
  • Koa项目总结五:Koa项目中cookie和session的配置和使用
    Koa项目总结五:Koa项目中cookie和session的配置和使用joyitsai关注IP属地:山东0.282019.05.2623:52:45字数1,326阅读2,4751.Cookie介绍:Cookie是保存在浏览器中的数据,可以让我们在同一个浏览器访问同一个域名时共享cookie数据。1.1使用cookie,可实现的几个常用场景:......
  • Windows中控制台(cmd)模式下运行程序卡死/挂起现象解决方案(快速编辑模式)
    最近在运行编译好的exe文件时,发现了一个现象,就是通过cmd运行exe文件或者双击执行运行exe文件,偶尔会出现程序没有执行的情况。最开始发现这个现象时,还以为是程序出现了什么Bug。后面经过网上查询才知道,原始这一切都是控制台(cmd)模式下快速编辑模式捣的鬼。可能大家平常没有接触到,......
  • nuxt3中如何使用Swiper
    项目中新增了banner轮播需求,发现在nuxt3中使用与常规的使用方式不同,所以专门去了解了一下,查看了swiper官网,发现找到的api参数和我使用的对不上,因此很多效果都实现不了,后面发现查找的官网不对,所以设置没有效果。这里记录一下,方便以后使用。原:Swiper中文网-轮播图幻灯片js插件,......
  • 如何使用极狐GitLab Runner 修改日志大小限制
    本文作者:徐晓伟GitLab是一个全球知名的一体化DevOps平台,很多人都通过私有化部署GitLab来进行源代码托管。极狐GitLab是GitLab在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。本文讲述了如何调整极狐GitlabRunner日志大小限制问题测试项目:https......
  • SEM效果优化解决方案 CloudNEO为您提供过国内外SEM服务
    SEM效果优化解决方案在数字营销领域,搜索引擎营销(SEM)是一种有效的推广方式,能够帮助企业提升品牌知名度、吸引潜在客户并增加网站流量。然而,要获得良好的SEM效果,需要综合考虑多个因素,并采取有效的优化策略。以下是SEM效果优化的解决方案:1.关键词优化:选择适合的关键词是SEM效......
  • node管理包工具nvm的安装与基本使用
    一:安装github地址https://github.com/nvm-sh/nvmwindows可以直接去下载管理.exe一键安装执行命令nvm-v如果成功会显示安装的对应版本号nvm-v1.1.12二:设置node下载源。我们都知道,node这个东西,从node中文站下载速度还好,不然,下载速度也是够受的。那么nvm如何设置node......
  • 企业SEO策划方案优化如何实施,CloudNEO免费为企业设计SEO方案
    企业SEO策划方案优化如何实施,CloudNEO免费为企业设计SEO方案在当今数字化时代,搜索引擎优化(SEO)是企业提升在线可见性和吸引潜在客户的关键之一。然而,对于许多企业来说,如何制定和优化SEO策划方案成为了一个挑战。作为专业的数字营销服务提供商,CloudNEO愿意为您免费设计并优化SEO......