浏览器、负载均衡 、进程内部层…那些你需要掌握的多级缓存

摘要:对从客户端到服务端的不同层面做了一个总体不同的缓存实现形式的总结。

本文分享自华为云社区《面试官怒了:多级缓存不了解怎么行,那可是数量级的提升?》,作者: 知识浅谈 。

从客户端到服务端,多级缓存层层剖析总结

1.为什么需要用缓存?

    • 因为受制于机械硬盘的读写耗时的原因,即使是SSD这种固态硬盘,其读写IO耗时也是一个不小的耗时,所以就引出了内存中存储,也就是缓存的概念。
    • 像是电商这种读多写少的环境更适合使用多级缓存来提高读取的效率。

2.多级缓存都包含哪些方面

客户端(浏览器)层、Nginx(负载均衡)层 、进程内部层、 分布式(Redis)层

客户端层缓存

主要是对html种css,js,图片等一些静态资源进行缓存到本地,在之后进行网页访问的时候后就不用再次去服务端去获取了。

常用的像是百度的logo标志是设置expires这个过期时间来限制这个logo静态资源的多次访问。

Nginx/CDN层缓存

CDN内容分发网络/Nginx负载均衡层是主要通过在CDN的节点或者是Nginx的节点上进行缓存来达到内容的缓存便于快速的查找资源。

CDN层缓存

Nginx层缓存:

进程内部层缓存

作为进程内部缓存的意思是在运行的过程中,应用数据被载入到进程中的,通过本地内存的低延迟高吞吐的特性来调高数据资源的查询效率。

像是Mybatis的一二级缓存,Hibernate,Springmvc的页面缓存,对于这些缓存的实现有Ehcache等。

分布式Redis缓存

针对分布式的架构中,我可以使用Redis这种Nosql数据库对整体架构中应用数据进行缓存,一般想起缓存我们都是使用Redis来解决其实,在高并发的环境中所有的请求都打到Redis这种nosql缓存上也不是一个好的选择,所以还像是静态资源还需要客户端缓存和Encache这种进程中的缓存来一起实现。

总结

针对从客户端到服务的不同层面做了一个总体不同的缓存实现形式的总结,希望对你有所帮助。

 

点击关注,第一时间了解华为云新鲜技术~

posted @   华为云开发者联盟  阅读(136)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
历史上的今天:
2021-08-17 网络货运平台要智能,安全的数据底座少不了
2021-08-17 基于昇腾CANN的卡通图像生成可在线体验啦!十分钟带你了解CANN应用开发全流程
2021-08-17 什么是强化学习?
2021-08-17 高可用架构演进之单元化
2020-08-17 高并发,你真的了解吗?
2020-08-17 实战分享丨MySQL 与Django版本匹配相关经验
2020-08-17 技术分享丨数据仓库的建模与ETL实践技巧
点击右上角即可分享
微信分享提示