缓存

返回目录

缓存

缓存是软件系统中常见的组成部分,其能够提升系统的请求处理与响应能力,避免重复地处理,快速返回常见的数据:

缓存系统的主要功能常常有:

  • 数据库缓存:作为数据库与 DAO 层之间的中间缓存,降低对后端数据库的访问压力,高速缓存能使得访问速度达到 1ms 级别,例如高频率的数据库查询。

  • 临时数据存储:应用程序需要维护大量临时数据,将临时数据存储在缓存系统中,可以降低内存管理的开销,改进应用程序工作负载。例如:在分布式系统中,同一个用户的不同请求可能会发送到不同的服务器上,这时可以用缓存作为全局存储,用于保存 Session 数据、用户的 Token、权限信息等数据。

  • 部分数据的持久化存储:此时类似于传统的数据库,将数据存入磁盘中做持久化存储,例如广告推荐类需要离线计算大量数据以及榜单的生成。

我们往往会从系统层、应用层、网络层、用户层等不同的维度去提高缓存机制与策略。客户端缓存也被称为“浏览器缓存”,下载数据的客户端,浏览器,应用程序,其他服务等可以跟踪下载的内容,如果该数据有任何过期时间,则 ETag 为最后一个请求允许条件、请求数据是否已更改等。网络层缓存中,类似于 VarnishSquid 拦截看起来相同的请求(基于各种可配置标准),尽早直接从内存中返回响应,而不是点击应用程序服务器。 这允许应用服务器花费更多时间处理其他流量。应用层缓存则是 Memcache,Redis 等软件可以在您的应用程序中实现,以缓存数据存储查询等各种内容,这样可以更快地生成响应。

链接