Redis快速实战-简单介绍常见的缓存及分类

在大型网站中从浏览器到网络,从网络到服务器,从服务器到数据库等各个层面都有资源数据消耗,并且在大型网站建设过程中在每个层次上都应用了大量的缓存技术,使用这些缓存技术也极大的提升了系统的性能以及用户体验,下面我们就来看看在日常开发中常见的缓存分类。

客户端缓存

在传统互联网应用中,我们会经常用到页面缓存以及浏览器缓存等操作,在移动互联网领域我们还会用到一些APP的缓存,将数据放入的Android底层的数据库SqlLite中等等操作。这些缓存操作都是在客户端来完成的,所以被统称为客户端缓存。

页面缓存

所谓的页面缓存是指利用一些客户端页面的某些元素或者是某些全局的元素对数据进行存储,或者是利用一些其他的技术手段将数据保存成客户端页面引用的文件等操作。

例如在HTML5中用到的Cookie、WebsStorage、WebSQL、indexDB、Application Cache等技术。可以通过设置页面的manifest描述文件,并且将manifest文件属性添加到页面的html标签中;还可以使用LocalStorage来进行本地缓存。当然还有很多的缓存手段来实现页面缓存操作。

浏览器缓存

我们知道在使用B/S架构的应用中,当客户端向服务器请求资源的时候,会先去浏览器缓存中查找,如果在浏览器缓存中找到了相应的资源请求副本,这个时候就可以直接将对应的资源文件进行渲染而不需要请求原始服务器,这样可以极大的减少资源在网络传输中的性能消耗。

而浏览器缓存可以分为强制缓存和协商缓存两种。其中强制缓存是指直接使用浏览器缓存来完成数据缓存的操作。现需要满足如下的两个条件

  1. Cache-Control 的max-age 是否过期
  2. Expires的缓存时间是否过期

协商缓存是指,在服务器资源没有发生改变的时候使用浏览器缓存(304)。如果服务器资源发生了改变就使用服务器资源(200)。

APP缓存

所谓的APP缓存是指使用原生的APP实现方式将请求到的数据放入到移动端的内存中,或者是使用本地文件的方式来实现缓存操作,或者如上面提到的可以使用SQLite数据库进行存储,这也是为什么我们的手机会越用越卡的原因,因为在我们的手机空间中有可能缓存了太多的垃圾文件。导致整个的手机运行非常缓慢。

网络端缓存

在现在很多的网站都是通过Nginx进行了代理,客户端通过代理的方式来请求服务器的数据资源。所谓的网络端缓存就是在Web服务器端通过代理的方式来进行请求的处理。

Web代理缓存

在浏览器进行页面加载的时候会从原始服务器上去请求一些静态的资源文件,例如说一些样式文件、一些图片文件等等。用户在第一次请求的时候,这些原始的资源文件是从原始服务器上进行获取的,如下图所示,当用户第二次请求相同的资源的时候由于第一次请求的有些静态资源已经被缓存到了代理服务器上,第二次请求进入的时候就可以直接从代理服务器进行加载,这样可以减少从原始服务器加载资源的网络消耗。这也是实现网络缓存的手段之一。

边缘缓存

边缘缓存操作在业界比较著名的就是CDN技术,CND技术全称是Content Delivery Network,内容分发网络,CDN通过部署在各地的边缘服务器,使得用户可以从就近的节点获取到内容,降低网络阻塞,降低用户访问延迟。是有效的网络缓存手段。

CDN所使用的关键技术就是内存存储与内容分发技术,现在很多的公有云提供商都提供的CDN服务。使用者可以将一些图片资源、文件资源存储到CDN上,这样可以极大的提升网络效率。

服务端缓存

服务端缓存是占据了整个缓存服务的核心部分,其中包括数据库级别的缓存、平台级别的缓存以及应用级别的缓存。

数据库级别缓存

数据库是我们常用的实现数据持久化的手段之一,MySQL数据库在Server层使用了查询缓存机制,也就是说在第一次执行SQL语句之后MySQL数据库会将查询结果进行缓存,如果第二次SQL执行之后是一样的SQL则会将缓存中的数据返回。在MySQL数据库底层使用了一种KV存储方式,其中K是SQL语句的Hash值,而V则表示查询到的结果值。在InnoDB数据库引擎中的buffer-pool属性就是用来存储InnoDB的索引以及查询数据块的。

平台级别缓存

所谓的平台级别缓存是指使用了带有缓存特性的应用框架来完成平台的建设工作,例如经常会用到的GuavaCache、Ehcache、OSCache等等。这些缓存都是部署在应用服务器上来使用,所以也被称为是本地缓存。

应用级别缓存

应用级别缓存是指常用到的一些缓存中间件技术例如Redis、Memcached、EVCache、Tair等等。这些缓存都是采用KV结构来实现缓存存储,同时支持集群、高可用、高并发、高扩展等特性。

总结

上面我们介绍了常见的缓存分类,利用这些缓存极大的提升的系统性能,提升了用户体验。

展开阅读全文

页面更新:2024-04-20

标签:缓存   实战   浏览器   级别   常见   快速   操作   页面   简单   服务器   数据库   数据   资源   网络

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top