面试官怒了:多级缓存不了解怎么行,那可是数量级的提升?
【摘要】 面试官怒了:多级缓存不了解怎么行,那可是数量级的提升?
🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云星级博主
📌 擅长领域:全栈工程师、爬虫、ACM算法
💒 公众号:知识浅谈
🔥 联系方式vx:zsqtcc
🤞从客户端到服务端,多级缓存层层剖析总结🤞
- 为什么需要用缓存?
- 因为受制于机械硬盘的读写耗时的原因,即使是SSD这种固态硬盘,其读写IO耗时也是一个不小的耗时,所以就引出了内存中存储,也就是缓存的概念。
- 像是电商这种读多写少的环境更适合使用多级缓存来提高读取的效率。
- 多级缓存都包含哪些方面
客户端(浏览器)层
、Nginx(负载均衡)层
、进程内部层
、分布式(Redis)层
- 主要是对html种css,js,图片等一些静态资源进行缓存到本地,在之后进行网页访问的时候后就不用再次去服务端去获取了。
- 常用的像是百度的logo标志是设置expires这个过期时间来限制这个logo静态资源的多次访问。
-
CDN内容分发网络/Nginx负载均衡层是主要通过在CDN的节点或者是Nginx的节点上进行缓存来达到内容的缓存便于快速的查找资源。
-
CDN层缓存
-
Nginx层缓存:
- 作为进程内部缓存的意思是在运行的过程中,应用数据被载入到进程中的,通过本地内存的低延迟高吞吐的特性来调高数据资源的查询效率。
- 像是Mybatis的一二级缓存,Hibernate,Springmvc的页面缓存,对于这些缓存的实现有Ehcache等。
- 针对分布式的架构中,我可以使用Redis这种Nosql数据库对整体架构中应用数据进行缓存,一般想起缓存我们都是使用Redis来解决其实,在高并发的环境中所有的请求都打到Redis这种nosql缓存上也不是一个好的选择,所以还像是静态资源还需要客户端缓存和Encache这种进程中的缓存来一起实现。
针对从客户端到服务的不同层面做了一个总体不同的缓存实现形式的总结,希望对你有所帮助。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)