解决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.实现复杂,存在误判的可能

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值