首页 > 其他分享 >k03_缓存

k03_缓存

时间:2024-03-11 19:57:21浏览次数:17  
标签:缓存 请求 解决方案 数据库 击穿 穿透 k03

缓存更新策略 
缓存穿透
缓存雪崩
缓存击穿
锁
Redisson

缓存穿透:

  • 用户请求的数据在缓存中和数据库中都不存在,不断发起这样的请求,给数据库带来巨大压力

缓存穿透的解决方案有哪些?

  • 缓存null值
  • 布隆过滤
  • 增强id复杂度,避免被猜测id规律
  • 做好数据的基础格式校验
  • 加强用户权限校验

缓存雪崩:

  • 是指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力。

解决方案:

  • 给不同的Key的TTL添加随机值
  • 利用Redis集群提高服务的可用性
  • 给缓存业务添加降级限流策略
  • 给业务添加多级缓存

缓存击穿:

  • 缓存击穿问题也叫热点Key问题,就是一个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击。

常见的解决方案有两种:

  • 互斥锁
  • 逻辑过期

标签:缓存,请求,解决方案,数据库,击穿,穿透,k03
From: https://www.cnblogs.com/2580p/p/18066908

相关文章

  • 固态硬盘有缓存和没缓存之间的区别在哪
    ​固态硬盘(SSD)已经成为现代计算机的重要组成部分,它们提供了比传统机械硬盘更快的读写速度,从而显著提升了操作系统的运行速度和应用程序的加载效率。其中,缓存(Cache)是固态硬盘中一个重要的元素,它对于硬盘的性能和速度有着显著的影响。那么,固态硬盘有缓存和没缓存有什么区别?哪个更......
  • 清除缓存问题 localStorage浏览器本地缓存需清除网站数据 sessionStorage 创建各自的
    localStorage浏览器本地缓存pc需清除网站数据,或者开启新的无痕网页移动端app需进入设置页面,点击“清除浏览数据”选项;pc端的开启无痕就相当于开启一个新的浏览器无痕项目,但是app端开启无痕不会自动先清除之前已保存的数据sessionStorage浏览器页面缓存Window.sessionStorage......
  • 【深度解析】'go build'缓存机制:揭秘Windows下缓慢的原因
    引言本文主要围绕gobuild的缓存hash计算与获取缓存文件来编写。  笔者是Windows系统用户,在gobuild或golist-export一些需要编译(但已存在编译缓存)场景下执行的很慢。网上有很多说法大多都是说关闭杀毒软件、关闭磁盘扫描等,并未清楚的描述为什么。  接下来我将围绕g......
  • [Redis] 02-缓存和数据库数据一致性问题
    经过一番排查,确认服务器的性能瓶颈是在数据库。给服务器加上Redis,让其作为数据库的缓存。这样,在客户端请求数据时,如果能在缓存中命中数据,那就查询缓存,不用再去查询数据库,从而减轻数据库的压力,提高服务器的性能。一、缓存模型二、数据库和缓存的数据不一致问题更新数据时,数据......
  • uniapp清除指定key缓存
    清除缓存onLaunch:function(){console.log('AppLaunch')constpreservedKeys=['ishowFixPre','readTime']try{const{keys}=uni.getStorageInfoSync()keys.forEach((key)=>......
  • 如何部署极狐GitLab Runner Cache 缓存配置?
    本文作者:徐晓伟GitLab是一个全球知名的一体化DevOps平台,很多人都通过私有化部署GitLab来进行源代码托管。极狐GitLab是GitLab在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。极狐GitLabRunnerCache缓存支持S3标准协议,如:OSS、OOS等等支持S3......
  • C++ LRU缓存
    题目://构建双向链表的节点结构(要有两个构造函数)structNode{intkey,val;Node*pre;Node*next;Node():key(0),val(0),pre(nullptr),next(nullptr){}Node(int_key,int_val):key(_key),val(_val),pre(nullptr),next(nullptr){}};class......
  • SpringBoot整合Caffeine本地缓存
    一、Caffeine性能二、Caffeine配置注意:1、weakValues和softValues不可以同时使用。2、maximumSize和maximumWeight不可以同时使用。3、expireAfterWrite和expireAfterAccess同事存在时,以expireAfterWrite为准。三、软引用和弱引用软引用:如果一个对象只具有......
  • 聊一聊Integer的缓存机制问题
    在Java编程中,Integer类作为基本类型int的包装器,提供了对象化的操作和自动装箱与拆箱的功能。从JDK5开始引入了一项特别的优化措施——Integer缓存机制,它对于提升程序性能和减少内存消耗具有重要意义。接下来我们由一段代码去打开Integer缓存机制的秘密。publicstaticvoidmain(......
  • mybatis面试高频问题---执行流程/延迟加载/缓存
    mybatis一.mybatis执行流程理解了各个组件的关系Sql的执行过程(参数映射、sql解析、执行和结果处理)二.mybatis支持延迟加载1.立即加载查询用户信息的同时也可以查询到相关订单信息UserMapper:OrderMapper:UserTest.java打印输出用户信息执行结果:2.延迟加载f......