Redis
Jaylen不写bug
这个作者很懒,什么都没留下…
展开
-
缓存穿透常用解决方案
针对缓存穿透的常见解决方案有以下两种: 方案1: 对于数据库中不存在的数据, 也对其在缓存中设置默认值Null,为避免占用资源,一般过期时间会比较短;相对简单, 但是也容易破解, 比如 攻击者通过分析数据格式, 不重复的请求数据库不存在数据, 那这样方案1就等于失效的. 方案2: 可以设置一些过滤规则, 如布隆过滤器;设计思路是通过设置过滤规则, 在数据库查询之前将数据进行过滤, 如果发现数据不存在, 则不再进行数据库查询, 以此来减小数据库的访问压力。过滤规则目前主流的一种的载体就是布隆过滤器.原创 2021-04-08 13:44:33 · 357 阅读 · 0 评论 -
Redis之缓存穿透、缓存雪崩和缓存击穿
Redis缓存机制 一个缓存请求的流程:数据查询先进缓存查询,如果key不存在或者key过期,就去数据库查询,如果查到数据,放到放到缓存中,如果没有key对应的value,则不放进缓存。 缓存穿透: 当缓存和数据库都没有数据的情况下,如果攻击者找到一个一定不会存在的key,比如id为-1,一直请求: 缓存查询不到,去数据库查询; 数据库查询不到,不会有对应的value进缓存,回到1; 缓存雪崩: 例如一大批商品同时入缓存,正常策略会导致这一大批的缓存数据会同时失效,查询又会落到数据库,如果遇到大规模查询原创 2021-04-07 16:44:38 · 135 阅读 · 0 评论