首页 > 其他分享 >缓存穿透与缓存雪崩

缓存穿透与缓存雪崩

时间:2023-09-04 15:03:23浏览次数:40  
标签:解决办法 缓存 DB 查询 穿透 雪崩 失效


1. 缓存穿透:查询一个必然不存在的数据。比如文章表,查询一个不存在的id,每次都会访问DB,如果有人恶意破坏,很可能直接对DB造成影响。

解决办法:对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃。

2.缓存失效:如果缓存集中在一段时间内失效,DB的压力凸显。这个没有完美解决办法,但可以分析用户行为,尽量让失效时间点均匀分布。

 

--参见《程序员》杂志2011.8 P48

标签:解决办法,缓存,DB,查询,穿透,雪崩,失效
From: https://blog.51cto.com/u_16245757/7350848

相关文章

  • Nginx缓存
    add_header Cache-Control  Nginx下关于缓存控制字段cache-control的配置说明 - 运维小结 proxy_cache_validproxy_cache_valid指令是Nginx中实现缓存服务的一种重要方法,它的作用是控制缓存数据的有效期,防止过期数据对网站性能造成影响。当Nginx服务器响应客户端请求时......
  • win2016搭建frp内网穿透的FTP服务器可用phpstorm
    操作系统:WindowsServer2016StandardFTP服务器:ser-U7.0.0.1之前用FileZillaServer,但phpstorm怎么连接不上FTP,最后安装Ser—U使用了SSH模式成功连通。下载安装Ser-U创建域域名信息随便写,没有意义SSH的SFTP一定要打开添加用户frpc开通内网穿透端口frpc相关配......
  • Integer缓存机制随笔(清晰)
    总体主要分为两个方面①比较的是值一、基本数据类型与引用数据类型进行比较时,引用数据类型会进行拆箱,然后与基本数据类型进行值的比较举例:inti=12;Integerj=newInteger(12);i==j返回的是true二、引用数据类型与基本数据类型进行比较(equals方法),基本数......
  • 旧笔记本秒变web服务器---nat123 一款优秀的内网穿透服务器
    2014买的第一台笔记本,win7系统,加过内存,重装过多次系统但是无法运行win10,用来开发已经相当吃力,但运行还是比较流畅的,扔掉可惜,卖二手也卖不了多少,后来经过多次的思考与尝试,将厚重的光驱位扩展了500G硬盘,安装了winNAS,将其改装成了私有NAS网盘,但是客户端只有手机端app,对于我这做web开......
  • 多级缓存架构(5&6)
    多级缓存架构缓存设计缓存穿透缓存穿透是指查询一个根本不存在的数据,缓存层和存储层都不会命中,通常出于容错的考虑,如果从存储层查不到数据则不写入缓存层。缓存穿透将导致不存在的数据每次请求都要到存储层去查询,失去了缓存保护后端存储的意义。造成缓存穿透的基本原......
  • 缓存穿透、缓存击穿、缓存雪崩区别和解决方案
    一、缓存处理流程   前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。 ......
  • Redis缓存相关问题
    缓存穿透:就是,一个请求携带的参数是,id为负一我缓存中肯定没有,而且数据库肯定也没有,那么这个参数为负一的请求就直接绕过了redis,直接就访问了数据库,这就是缓存穿透缓存击穿:就是我有一个热点数据,比如秒杀,好巧不巧在秒杀开始的时候,刚好我缓存的KEY到期了,那么秒杀的请求全部打进了我......
  • VSCODE 关闭 go 的test缓存
    Ctrl+,进入设置,搜索gotestFlags点击Editinsettings.json在内添加"-count=1"......
  • django自带的cache缓存框架使用
    https://docs.djangoproject.com/zh-hans/4.2/topics/cache/#top主要步骤官网也写得很清楚了,包含怎么区使用。这里就展示一些配置django-redis来使用#settings.pyCACHES={'default':{#默认,预留'BACKEND':'django_redis.cache.RedisCache','......
  • redis缓存优化
    目录一缓存优化1.1缓存更新策略1.2配置文件中设置二穿透,击穿,雪崩2.1缓存穿透2.2缓存击穿2.3缓存雪崩一缓存优化1.1缓存更新策略#redis数据放在内存中,输入如果满了,再放数据--->肯定能放进去 -老数据怎么样?#方案LRU-LeastRecentlyUsed没有被使用时间最长的......