侧边栏壁纸
  • 累计撰写 79 篇文章
  • 累计创建 7 个标签
  • 累计收到 0 条评论

总结

水龙吟
2022-05-22 / 0 评论 / 0 点赞 / 414 阅读 / 436 字
温馨提示:
本文最后更新于 2022-05-22,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Redis

1、缓存穿透:

查询了一个不存在的数据,由于无法命中缓存,导致每次都会到数据库去查询。因为一般查询结果为空都不会写入缓存,使用每次这个不存在的数据的请求都会到存储层查询,失去看缓存的意义。流量大的情况下,数据库就扛不住了。用不存在的key频繁查询就可以攻击我们的系统。
解决办法:查询结果为空的也给他缓存,但是失效时间放短一些。

2、缓存击穿:

当热点的数据被访问时,正好失效,过期时间到了,那么数据查询都到了数据库
解决办法:加锁(redisson),100万请求同时查询一个缓存没有的key,先放行一个,查询结束后放到缓存

3、缓存雪崩:

设置缓存时,多个key使用了相同的过期时间导致同一时间过期,请求全部转发到数据库
解决办法:原有的失效时间加随机值,比如1-5分钟

分布式锁:

​ 与分布式锁对应的有线程锁(方法和代码块上锁),
​ 由来:分布式系统,多进程在不同机器上,原本的单机并发控制锁策略失效,需要控制多进程对资源的访问处理。
​ 使用redis实现

image.png

分布式锁+AOP实现缓存
0

评论区