24小时技术QQ:3003634090

资讯中心

缓存服务器有哪些?
2021-07-12 14:50:44
阅读()
来源:互联数据
摘要:     缓存服务器的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读

缓存服务器的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。CPU缓存是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。


搭建缓存服务器是为了:将热点数据放到离用户最近或访问速度更快的介质中,加快数据的访问,减小响应时间。缓存服务器的原理就是:首先将数据写入/读取速度更快的存储(设备),然后将数据缓存到离应用最近的位置,最后将数据缓存到离用户最近的位置!


缓存服务器分为4种:CDN缓存、反向代理缓存、分布式Cache、本地应用缓存

缓存服务器类型

缓存服务器的媒介


①、常用中间件:Varnish,Ngnix,Squid,Memcache,Redis,Ehcache等

②、缓存的内容:文件,数据,对象

③、缓存的介质:CPU,内存(本地,分布式),磁盘(本地,分布式)


缓存服务器设计


1、缓存的内容:1.热点数据;2.静态资源。固定时间:比如指定缓存的时间是30分钟;(2)相对时间:比如最近10分钟内没有访问的数据;


2、缓存的位置:CDN,反向代理,分布式缓存服务器,本机(内存,硬盘)。同步机制:(1)实时写入;(2)异步刷新


一、CDN服务器缓存


原理:CDN的基本原理是广泛采用各种缓存服务器,将缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。CDN主要解决将数据缓存到离用户最近的位置,一般缓存静态资源文件(页面,脚本,图片,视频,文件等)。


国内网络异常复杂,跨运营商的网络访问会很慢。为了解决跨运营商或各地用户访问问题,可以在重要的城市,部署CDN应用。使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。


(1) 未部署CDN应用前,在不考虑复杂网络的情况下,从请求到响应需要经过3个节点,4个步骤完成一次用户访问操作。


网络请求路径请求:本机网络(局域网)——》运营商网络——》应用服务器机房


响应:应用服务器机房——》运营商网络——》本机网络(局域网)


(2) 部署CDN应用后


网络路径请求:本机网络(局域网)——》运营商网络


响应:运营商网络——》本机网络(局域网)


在不考虑复杂网络的情况下,从请求到响应需要经过2个节点,2个步骤完成一次用户访问操作。与不部署CDN服务相比,减少了1个节点,2个步骤的访问。极大的提高的系统的响应速度。


优点:1、本地Cache加速:提升访问速度,尤其含有大量图片和静态页面站点


2、镜像服务:消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量


3、远程加速:远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器,选择最快的Cache服务器,加快远程访问的速度


4、带宽优化:自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能


5、集群抗攻击:广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种D.D.o.S攻击对网站的影响,同时保证较好的服务质量


缺点:动态资源缓存,需要注意实时性(解决方法:主要缓存静态资源,动态资源建立多级缓存或准实时同步)


如何保证数据的一致性和实时性需要权衡考虑(解决方法:设置缓存失效时间(1个小时,最终一致性))


CND技术目前适用于,中小型互联网公司,综合成本考虑,一般租用第三方CDN服务,大型互联网公司,采用自建或第三方结合的方式。比如淘宝刚开始使用第三方的,当流量很大后,第三方公司无法支撑其CDN流量,淘宝最后采用自建CDN的方式实现。


二、反向代理缓存服务器


原理:反向代理位于应用服务器机房,处理所有对WEB服务器的请求。如果用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向WEB服务器发出请求,取回数据,本地缓存后再发送给用户。通过降低向WEB服务器的请求数,从而降低了WEB服务器的负载


代理缓存对比:常用的代理缓存有Varnish,Squid,Ngnix


反向代理一般缓存静态资源,动态资源转发到应用服务器处理



Squid 反向代理加速网站实例


(1) 通过DNS的轮询技术,将客户端的请求分发给其中一台 Squid 反向代理服务器处理;


(2) 如果这台 Squid 缓存了用户的请求资源,则将请求的资源直接返回给用户;


(3) 否则这台 Squid 将没有缓存的请求根据配置的规则发送给邻居 Squid 和后台的 WEB 服务器处理;


(4) 这样既减轻后台 WEB 服务器的负载,又提高整个网站的性能和安全性。


三、分布式缓存服务器


CDN,反向代理缓存,主要解决静态文件,或用户请求资源的缓存,数据源一般为静态文件或动态生成的文件(有缓存头标识)。


分布式缓存能够处理大量的动态数据,因此比较适合应用在Web 2.0时代中的社交网站等需要由用户生成内容的场景。从本地缓存扩展到分布式缓存后,关注重点从CPU、内存、缓存之间的数据传输速度差异也扩展到了业务系统、数据库、分布式缓存之间的数据传输速度差异。

常用的分布式缓存包括Redis和Memcached。


1、Memcached:是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。Memcached通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。


特点:哈希方式存储;全内存操作;简单文本协议进行数据通信;只操作字符型数据;集群由应用进行控制,采用一致性哈希算法。


限制性:数据保存在内存当中的,一旦机器重启,数据会全部丢失;只能操作字符型数据,数据类型贫乏;以root权限运行,而且Memcached本身没有任何权限管理和认证功能,安全性不足;能存储的数据长度有限,最大键长250个字符,储存数据不能超过1M。。


2、Redis:Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。


特点:Redis支持的数据类型包括:字符串、string、hash、set、sortedset、list;Redis实现持久化的方式:定期将内存快照写入磁盘;写日志;Redis支持主从同步。


限制性:单核运行,在存储大数据的时候性能会有降低;不是全内存操作;主从复制是全量复制,对实际的系统运营造成了一定负担。


四、本地缓存服务器


硬盘缓存:将数据缓存到硬盘到,读取时从硬盘读取。原理是直接读取本机文件,减少了网络传输消耗,比通过网络读取数据库速度更快。可以应用在对速度要求不是很高,但需要大量缓存存储的场景


内存缓存:直接将数据存储到本机内存中,通过程序直接维护缓存对象,是访问速度最快的方式(适合少量缓存,对速度敏感的场景)


四种缓存服务器职责划分(建议使用方式,非绝得):


①、CDN:存放HTML,CSS,JS等静态资源;


浏览器向客户端发起请求,如果CDN有缓存则直接返回,如果CDN无缓存,则访问反向代理服务器;如果反向代理服务器有缓存则直接返回


②、反向代理:动静分离,只缓存用户请求的静态资源


如果反向代理服务器无缓存或动态请求,则访问应用服务器


③、分布式缓存:缓存数据库中的热点数据


如果分布式缓存无数据,则应用程序读取数据库数据,并放入分布式缓存


④、本地缓存:缓存应用字典等常用数据


应用服务器访问本地缓存;如果有缓存,则返回代理服务器,并缓存数据;(动态请求不缓存),如果本地缓存无数据,则读取分布式缓存;并返回应用服务器;应用服务器将数据缓存到本地缓存(部分)


通过以上介绍,我们搞懂了什么是缓存服务器,缓存服务器的原理。对于不同的大中型企业而言,缓存服务器都有助于优化性能和节省服务器的带宽。如果在使用缓存服务器能采取正确的缓存解决方案,那么它就会随着企业的网络增长而逐步扩大,这样就无需进行重建了!


更多缓存服务器产品咨询http://www.hkt4.com/


0

上一篇:GPU云服务器是干什么的?
下一篇:游戏私人服务器搭建必看!
旗下产品均支持24小时免费测试
HKT4香港机房产品均支持24小时免费测试,先测试后付款让业务不熟更放心
申请测试
免费试用
免费试用
旗下产品均支持24小时免费测试
24小时免费电话
400-8715-668
24H客服

24H在线客服

  • 业务咨询
  • 售后服务
24小时免费电话
400-8715-668