首页 > 数据库 >【知识点】Redis-缓存-缓存穿透

【知识点】Redis-缓存-缓存穿透

时间:2024-04-06 22:56:24浏览次数:15  
标签:知识点 缓存 hash Redis 布隆 穿透 过滤器 数据

缓存穿透:查询一个不存在的数据,Mysql查询不到也没有写入缓存,导致每次请求都会查询数据库。(比如恶意请求)

解决方案:

  1. 缓存空数据:返回数据为空时仍然缓存(但是需要加过期时间)。

优点:简单
缺点:消耗内存,可能存在数据不一致情况。

  1. 布隆过滤器

布隆过滤器使用Bitmap(位图)来记载一个数据是否在一个集合中,一般使用多个hash函数对数据ID进行hash计算,然后将计算结果保存在位图中,该ID的数据存在时,hash计算得到的位即为1。

项目启动后在redis预热时,同样需要预热布隆过滤器。

优点:内存占用少,没有多余的Key
缺点:实现复杂,存在误判情况(即数据库没有,但是布隆过滤器判断有)

标签:知识点,缓存,hash,Redis,布隆,穿透,过滤器,数据
From: https://www.cnblogs.com/code-blog/p/18118130

相关文章

  • Redis—分布式锁
    单实例的正确实现方式获取锁的正确操作为:SETresource_namemy_random_valueNXPX30000,它限定了只有当锁空闲且持有锁的时间为30000ms,并且锁资源对应的value为一个随机值。设置随机值是为了在释放锁时,确保当前线程能够释放该锁,避免出现操作超时的线程释放了其它线程的锁。......
  • Redis未授权漏洞复现
    目录Redis漏洞的产生条件及利用Redis环境搭建漏洞复现利用Redis写入Webshell利用Redis写入SSH公钥利用Redis写入计划任务Redis安全防护Redisredis(remotedictionaryserver)是一个key-value存储系统,是跨平台的非关系型数据库。redis默认情况下,会绑定在0.0.0.0:6379,如果没有采用......
  • Redis过期删除策略和内存淘汰机制
    过期删除策略1、惰性删除就是过期之后下一次取数据时,发现过期了,就删除它。2、定期删除定期删除一些过期的key。redis采用的时惰性删除+过期删除。问题:可能会漏掉一些key,从而导致OOM。内存淘汰机制3*2+2volatile-lru:从过期数据集中选择最近最少使用的数据淘汰。allKe......
  • C语言之易错知识点统计
    hello,铁汁们,大家好呀,我是脆皮炸鸡。今天是4,6号,发现了很多自己以前没有意识到的知识点误区,记录下来和大家分享一下,由于我的水平有限,难免会出错。若是有什么错误,恳请大家告知,在这里多谢大家啦!大家有什么易错点也可以在评论区分享一下呦。C语言规定,在一个源程序中,main函数......
  • Redis数据库的入门学习
     关系型数据库和非关系型数据库的区别:简介Redis数据库和MySql数据库的区别:Redis数据库是基于内存的key-value结构的数据库。本质上是内存存储。而MySql数据库是通过数据文件的方式存在磁盘当中,本质上是磁盘存储。且MySql当中是通过二维表存储数据。注:Redis数据库并不......
  • Java斐波那契查找知识点(含面试大厂题和源码)
    斐波那契查找(FibonacciSearch)是一种在有序数组中查找元素的高效算法,它基于斐波那契数列的性质。斐波那契查找是二分查找的一种改进,通过使用斐波那契数列来确定搜索范围,可以在某些情况下减少比较次数,特别是在数组较大时表现更为出色。以下是斐波那契查找的一些关键知识点:......
  • 数据结构之顺序表的相关知识点及应用
     个人主页(找往期文章包括但不限于本期文章中不懂的知识点):我要学编程(ಥ_ಥ)-CSDN博客目录顺序表的概念及结构顺序表的分类顺序表的实现 在顺序表中增加数据 在顺序表中删除数据 在顺序表中查找数据 顺序表源码 顺序表的概念及结构在了解顺序表之前,得先知道......
  • go~在阿里mse上使用redis.call
    相关依赖github.com/higress-group/proxy-wasm-go-sdkgithub.com/alibaba/higress/plugins/wasm-go标准的redis下面是一个读取redis指定key的方法,使用了higress的wasm-go组件实现的 err:=config.Client.SMembers("online",func(responseresp.Value){ for_,item:=......
  • Redis缓存三兄弟
    Redis缓存的问题都是因为缓存过期,导致大量请求打到数据库,给数据库添加了压力。以下是典型的三个缓存问题。缓存穿透概念缓存穿透:频繁请求缓存和数据库中没有的数据,导致数据库的压力过大解决方案规则校验:增加对key的规则校验,防止恶意请求设默认值:数据库中没有数据时,给该......
  • Redis从入门到精通(七)Redis实战(四)库存超卖、一人一单与Redis分布式锁
    ↑↑↑请在文章开头处下载测试项目源代码↑↑↑文章目录前言4.3优惠券秒杀4.3.4库存超卖问题及其解决4.3.4.1问题分析4.3.4.2问题解决4.3.5一人一单需求4.3.5.1需求分析4.3.5.2代码实现4.3.5.3并发问题4.3.5.4悲观锁解决并发问题4.3.5.5集群环境下的并发问题......