#yyds干货盘点#缓存概述

怀抱观古今,寝食展戏谑。这篇文章主要讲述#yyds干货盘点#缓存概述相关的知识,希望能为你提供帮助。
在运维实践中,缓存的目的是提升访问性能,这是一种牺牲时间换取性能的技术。以前要获取数据时,直接去数据源获取即可。有了缓存后,想要获取数据,先去数据源获取,如果缓存中有,则直接返回;如果缓存中没有,则去后端数据源中取,并将取回的数据存放至缓存中,以方便下次请求访问。
缓存的类型主要分为前端缓存和后端缓存,而前端缓存的应用就是静态缓存,大家熟知的CDN就是前端静态缓存的典型代表。而后端缓存的应用又分为动态请求(如ASP、php、JSP)缓存和数据库热点数据缓存。
静态缓存静态缓存,一般是指Web类应用中,将html、JS、CSS、图片、音视频等静态文件/资源通过磁盘/内存等缓存方式提高资源响应速度,减少服务器压力/资源开销的一项缓存技术。
静态缓存的实现技术主要有Squid、Varnish、nginx。Squid是一个代理缓存服务器,它支持FTP、Gopher、HTTPS和HTTP协议。而Varnish也是一款代理缓存服务器,只不过它只支持HTTP代理缓存。相较于Squid,Varnish的功能虽然不多,但Varnish的精简,也是其最大的性能优势。Nginx的静态缓存需要第三方模块来完成,只能满足基本缓存需求。不过Nginx+Memcache的组合,使其和Squid、Varnish都具备了专业的静态缓存功能。
动态缓存后端缓存的动态缓存,主要是指动态类数据的缓存,包括以下两个类型:·动态页面的缓存。例如,对.do、.jsp、.asp/.aspx、.PHP、.js(nodejs)等动态页面进行缓存。·对数据库频繁访问查询的热点数据内容进行缓存。
CDN的技术手段是通过DNS智能解析+静态缓存来实现的,功能方面就是将内容提供商的静态资源数据以最快捷的方式分发到离用户尽可能近的地方与用户进行交互,以节省内容重复传输的时间。
动态缓存的实现技术普遍采用Memcache、Redis。它们都是一款基于内存的Key/Value数据库。

  • Redis采用的是单进程单线程模式,对CPU的利用不够理想。Memcached采用的是单进程多线程模式,能充分利用多核CPU。
  • Redis不仅支持简单的k/v类型的数据,同时还提供LIST、SET、HASH等数据结构的存储。
  • Memcache不支持持久化,Redis支持RDB/AOF将内存数据保存在磁盘内。
  • 【#yyds干货盘点#缓存概述】Memcache需要在代码层通过HASH算法进行分布式,而Redis自带主从、分片集群策略。

    推荐阅读