【10期】Redis 面试常见问答
程序员的成长之路
共 2046字,需浏览 5分钟
·
2020-08-09 08:48
阅读本文大概需要 3 分钟。
来自:https://thinkinjava.cn
1. 什么是缓存雪崩?怎么解决?
如何解决呢?
对缓存做高可用,防止缓存宕机
使用断路器,如果缓存宕机,为了防止系统全部宕机,限制部分流量进入 DB,保证部分可用,其余的请求返回断路器的默认值。
2. 什么是缓存穿透?怎么解决?
3. 什么是缓存并发竞争?怎么解决?
4.什么是缓存和数据库双写不一致?怎么解决?
先更新数据库,再更新缓存。
先删缓存,再更新数据库。
先更新数据库,再删除缓存。
使用“双删”,即删更删,最后一步的删除作为异步操作,就是防止有客户端读取的时候设置了旧值。
使用队列,当这个 key 不存在时,将其放入队列,串行执行,必须等到更新数据库完毕才能读取数据。
参考
https://coolshell.cn/articles/17416.html
https://www.cnblogs.com/rjzheng/p/9041659.html
https://docs.microsoft.com/en-us/azure/architecture/patterns/cache-aside
本文以收录在GitHub:https://github.com/gdjkmax/JavaBible/blob/master/%E9%9D%A2%E8%AF%95%E9%A2%98/100%20%E6%9C%9F%20Java%20%E9%9D%A2%E8%AF%95%E9%A2%98%E6%B1%87%E6%80%BB.md
点击原文链接可直达!
推荐阅读:
项目实践:Spring Boot 三招组合拳,手把手教你打出优雅的后端接口
微信扫描二维码,关注我的公众号
朕已阅
评论