1 / 2
文档名称:

Redis穿透的解决方法:布隆过滤器.docx

格式:docx   大小:65KB   页数:2页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Redis穿透的解决方法:布隆过滤器.docx

上传人:changjinlai 2021/10/21 文件大小:65 KB

下载得到文件列表

Redis穿透的解决方法:布隆过滤器.docx

相关文档

文档介绍

文档介绍:Redis概述:
Redis 是一个开源的 Key-Value 存储系统,其中 Value 支持 String、list、set、hash、 zset五种数据结构,这些数据都支持push/pop、add/removex取交集并集、排序等丰富的操 作,并且这些操作都是原子性的。
与同为NoSQL型缓存数据库的memcached类似,Redis的数据都存在内存中,数据的运 算都在内存中进行,不会发生10,这也是Redis为什么这么快的一个原因:区别是Redis具 备持久化方式,会周期性的把更新的数据写入磁盘(RDB)或者把修改操作追加写入记录文件 中(A0F)o
也就是说,Redis的数据存放在内存中,但Redis也支持持久化将数据存入磁盘或文件。
Redis是单线程的,但是多任务并发时可以开启多个Redis,并且Redis支持主从同步, 避免了宕机带来的影响,以及写时同步技术实现了数据读写分离(主机负责写入、从机负责 读取)。
ps: Redis的特点是单线程十多路10复用
Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同 时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲, 这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。
另外的一些典型问题就是,缓存穿透、缓存雪崩和缓存击穿。目前,业界也都有比较流 行的解决方案。本篇文章,来给大家讲解一下Redis穿透的解决方法一布隆过滤器
缓存穿透:
缓存穿透,是指查询一个数据库一定不存在的数据。正常的使用缓存流程大致是,数据 查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并把查询 到的对象,放进缓存。如果数据库查询对象为空,则不放进缓存。
代码流程:
①参数传入对象主键ID;
②根据key从缓存中获取对象:
③如果对象不为空,直接返回:
④如果对象为空,进行数据库查询;
⑤如果从数据库查询出的对象不为空,则放入缓存(设定过期时间)。
想象一下这个情况,如果传入的参数为T,会是怎么样?这个-1,就是一定不存在的对 象。就会每次都去查询数据库,而每次查询都是空,每次又都不会进行缓存。假如有恶意攻 击,就可以利用这个漏洞,对数据库造成压力,甚至压垮数据库。即便是采用
UUID,也是很 容易找到一个不存在的KEY,进行攻击。
布隆过滤器(Bloom Filter):
它实际上是一个