解决redis缓存穿透

目录
一、什么是缓存穿透
二、解决缓存穿透
2.1 缓存空对象
2.2 拉黑ip
2.3 参数合法性校验
2.4 布隆过滤器
一、什么是缓存穿透
1.客户端请求的数据在数据库中没有,这样缓存永远不会生效,所有客户端请求都会访问数据库
二、解决缓存穿透
2.1 缓存空对象
1.缓存中未找到,数据库也未找到,则缓存一个空对象,请求二次访问时,将缓存中的空对象返回
2.实现简单,维护方便
3.额外的内存消耗,可以设置个TTL过期时间
4.可能造成短期的不一致,如果后来库里有了数据,只有等ttl过期后才能拿到非空数据
5.可以在产生新数据的同时,更新一下缓存,这样短期的不一致也可以得到解决
2.2 拉黑ip
1.对恶意攻击的ip进行拉黑
2.3 参数合法性校验
1.参数不合法直接return
2.4 布隆过滤器
1.在客户端请求到达redis之前,加一个布隆过滤器
2.当访问的数据在布隆过滤器中不存在则直接拒绝,如果存在则放行到redis
3.内存占用较少,没有多余的key
4.实现复杂,存在误判的可能

你可能感兴趣的:(redis,架构师,缓存,redis)