缓存是什么:它怎样减少重复的数据请求

缓存把常用数据存放在读取更快的位置,避免重复向源头索取。它广泛存在于浏览器、网络节点和服务器内部。这篇文章说明基本机制,以及为什么更新内容后有时看不到变化。

花里云 约 1 分钟阅读

缓存是把常用或频繁访问的数据,临时存放在读取更快的位置,以避免每次都回到数据源头重新获取。它不是某一项具体技术,而是广泛存在的一种思路。

基本机制

当程序需要一份数据时,先看缓存里有没有。有,就直接取用,这一步通常很快;没有,就去源头取,同时把结果留存在缓存里,供下次使用。

缓存的代价是一致性问题:源头的数据变了,缓存里的还是旧的。因此除了存和取,还要决定什么时候让它失效、什么时候主动更新。

它出现在哪些地方

  • 浏览器:把图片、样式、脚本等文件留在本地,再次访问同一站点时不必重新下载。
  • 网络节点:内容分发网络的节点保存副本,就近响应访问请求。
  • 应用内部:把数据库查询的结果暂存在内存中,减少重复查询。
  • 数据库自身:部分系统内部带有查询结果缓存机制。

这几种缓存往往同时存在。一次访问提速,通常不是某一层的作用,而是多层叠加的结果。

失效与更新策略

常见做法有几种:按时间设定有效期,到期后重新获取;按使用情况淘汰,优先保留最近或最常被访问的内容;在数据更新时主动清除对应缓存。选择哪种,取决于内容变化的频繁程度——变动少的内容适合较长的有效期,实时性要求高的则不适合久留。

为什么更新后看不到变化

网站内容更新后,自己打开却还是旧页面,多数情况是缓存尚未过期。可以尝试强制刷新、清除浏览器缓存,或等待有效期结束。这也解释了为什么内容上线后,不同地区、不同用户看到更新的时间可能不一致。

使用时注意什么

缓存能明显减轻服务器压力、提升打开速度,但设置得当需要区分内容类型:稳定的图片、样式和脚本适合长缓存;经常变化的价格、库存、新闻列表则应当短缓存或不缓存。把时效性内容错误地长期缓存,会给使用者带来困扰,这类问题往往比“慢一点”更难排查。

花里云

西安花里云网络信息科技有限公司 · 企业数字平台厂商。十年一线交付,把项目里验证过的判断,整理成可以复用的东西。