下载此文档

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


文档分类:行业资料 | 页数:约2页 举报非法文档有奖
1/2
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/2 下载此文档
文档列表 文档介绍
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):
它实际上是一个

Redis穿透的解决方法:布隆过滤器 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数2
  • 收藏数0 收藏
  • 顶次数0
  • 上传人changjinlai
  • 文件大小65 KB
  • 时间2021-10-21
最近更新