缓存

系统缓存

buffer 与 cache

buffer:缓冲,一般用于写操作,用于解决不同介质的速度不一致的缓冲。CPU会先把数据写到内存的磁盘缓冲区,然后就认为数据已经写入完成,然后内核会在后续的时间将数据写入磁盘,如果服务器突然断电会丢失内存中的部分数据。

cache:缓存,一般用于读操作,CPU读文件从内存读,如果内存没有就从硬盘读到内存再读到CPU,将需要频繁读取的数据放在离自己最近的缓存区域,下次即可快速读取。

cache 的保存位置

客户端:浏览器
内存:本地服务器、远程服务器
硬盘:本机硬盘、远程服务器硬盘

用户层缓存

DNS缓存

默认为60秒,即60秒之内再访问同一个域名就不再进行DNS解析

浏览器缓存过期机制

  • 最后修改时间:服务端比较浏览器request中的最后修改时间和服务端文件的最后修改时间。如果相等,则返回304状态码,表示文件没有发生变化,浏览器可以使用本地缓存;如果不相等,则返回200,将新文件返回;
  • Etag标记:服务端通过比较浏览器request中的Etag标记(服务器根据文件内容计算出的值)和当前文件Etag标记,来判断文件内容是否发生过变化;
  • 过期时间(常用):以上两种方式都需要浏览器和服务端交互,缓存的过期时间可以在浏览器第一次请求资源时返回一个过期时间。浏览器的时间未必准确,还会加入一个最大生存周期。

CDN缓存

什么是CDN

内容分发网络(Content Delivery Network),将服务内容分发至全网加速节点,利用全球调度系统使用户能够就近获取,有效降低访问延迟,提升服务可用性。

CDN的优势:

  • 节省带宽:降低源站的使用带宽,因为很多资源通过CDN直接返回用户了;
  • 调度准确:解决了不同运营商之间的互联,可以让联通的网络访问联通,电信的网络访问电信;解决用户访问的地域问题,就近返回用户资源
  • 性能优化:专门用于缓存,响应速度快
  • 安全相关:抵御攻击(图片识别等)
posted @ 2024-12-31 10:19  千千菌  阅读(5)  评论(0编辑  收藏  举报