作者:温安适 引言一个超级疲惫的下午,离下班还有30分钟,小航拿了一袋坚果,对我说:”温哥,来来来,吃个坚果,开心下” 有了前几次的,经验,我意识到,这兄弟又要问题问题,委婉的回绝到:”谢谢好意,你吃吧,我不饿”。 小航,一看我有所防备,有拿出了安慕希,并且抓住了我的手臂,说道:“大神,我有困惑,请您帮帮我” 看他如此诚恳,我不好意思的说道:“大神不敢当,水平有限,恐无法为你解惑”。 小航一看有戏,有给了我一袋坚果,眼中有光的说道:“哥,您指点一二,无论对错,我都愿意听” 我感动(dong xi hao chi)的说:“什么问题,我试试看” 小航立刻说道:“使用缓存都有什么问题” 我缓缓道来:“主要四个问题,击穿,穿透,雪崩,污染” 问题描述逐个解决缓存击穿热点key过期了,请求打到了数据库 解决方式不给热点key设置过期时间 缓存穿透缓存没有,数据库也没有。 解决方式
缓存雪崩大量key同时失效给key的过期时间加上随机数,避免同时过期 Redis挂了
缓存污染有不常用的key占用redis内存。 解决方式:
注意是lfu,把访问次数最低的数据淘汰出缓存 Lru,解决不了如下场景:大量数据进行一次全体读取,因为这些被查询的数据刚刚被访问过,所以 lru 字段值都很大,无法淘汰不常用的key 总结 |
|