缓存的分类
【启用缓存】
启用本地缓存以及分布式缓存。这样,可以将大部分请求都拦截,不会全部去请求数据库。也就是 提高响应速度、减轻数据库压力。
1.客户端缓存
比如在大促之前,防止瞬间流量冲垮服务器,将秒杀相关的素材提前存到客户端。那么秒杀来临时就不需要拉取素材了。这里的素材一般是指秒杀框架js/css等。
还有异常处理页面,提高应用的可用性。
2.CDN缓存(Content Delivery Network内容分发网路)
本地存储 / 浏览器缓存这些技术是针对本地已经缓存了资源的情况,避免二次请求再去下载全部资源。
而CDN缓存是为了提升首次请求的响应速度。
CDN技术在现有网络基础上的虚拟智能网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、调度及内容分发等功能模块,
使用户在请求所需访问的内容时能够就近获取,以此来降低网络拥塞,提高资源对用户的响应速度。
请求流程:
1.与普通的域名解析不同,DNS服务器将对CDN的域名解析权交给了CNAME指向的专用DNS服务器。而且解析出来的地址并非是目标服务器的地址,而是CDN的负载均衡服务器的地址。
2.负载均衡服务器 会根据 用户IP的距离/资源的位置等,返回给用户 合适的服务器IP地址。
3.请求目标缓存服务器
eg:在全国部署100台CDN服务器,假如上海用户想要访问资源,则调用部署在上海的CDN服务器获取静态资源
CDN网络的核心功能:
1.缓存: 将所需的静态资源文件复制一份到CDN缓存服务器
2.回源:请求的内容不存在或者已过期,会重新转向 原服务器请求资源
3.反向代理缓存
Nginx缓存分为2类:
3.1 Nginx Http缓存 : expires、etag、if-modified-since指令
3.2 Nginx代理层缓存 : Http模块与proxy_cacahe模块
4.本地缓存
包括 磁盘缓存 、CPU缓存、应用缓存
4.1 磁盘缓存:
读缓存:已读取的文件数据,在内存较空闲的情况下留在内存空间中(这个内存空间叫内存池)。方便下次读取
写缓存:将要写入磁盘的数据保存到内存池中。数据达到一个程度时,便将数据保存到硬盘中。
4.2CPU缓存
分为一级缓存(L1 Cache)、二级三级缓存(L2/L3)。当CPU要读取一个数据时,首先从L1中查找,没有的话再从L2/L3中查找,
如果还没有那就从内存中查找,内存如果还没有那就从磁盘查找。查找顺序为:CPU->L1->L2/L3->内存->磁盘。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!