导航:首页 > IDC知识 > cache服务器

cache服务器

发布时间:2020-09-16 21:38:34

1、什么是Cache?作用是什么?

Cache指的是缓存。

高速缓存(英语:cache,/kæʃ/ kash [2][3][4])简称缓存,原始意义是指访问速度比一般随机存取存储器(RAM)快的一种RAM,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。

提供“缓存”的目的是为了让数据访问的速度适应CPU的处理速度,其基于的原理是内存中“程序执行与数据访问的局域性行为”,即一定程序执行时间和空间内,被访问的代码集中于一部分。

为了充分发挥缓存的作用,不仅依靠“暂存刚刚访问过的数据”,还要使用硬件实现的指令预测与数据预取技术——尽可能把将要使用的数据预先从内存中取到缓存里。

(1)cache服务器扩展资料

缓存的特点

缓存是指可以进行高速数据交换的存储器,它先于内存与CPU交换数据,因此速率很快。L1 Cache(一级缓存)是CPU第一层高速缓存。

内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。一般L1缓存的容量通常在32—256KB。

L2 Cache(二级缓存)是CPU的第二层高速缓存,分内部和外部两种芯片。内部的芯片二级缓存运行速率与主频相同,而外部的二级缓存则只有主频的一半。

L2高速缓存容量也会影响CPU的性能,原则是越大越好,普通台式机CPU的L2缓存一般为128KB到2MB或者更高,笔记本、服务器和工作站上用CPU的L2高速缓存最高可达1MB-3MB。

缓存只是内存中少部分数据的复制品,所以CPU到缓存中寻找数据时,也会出现找不到的情况(因为这些数据没有从内存复制到缓存中去),这时CPU还是会到内存中去找数据,这样系统的速率就慢下来了,不过CPU会把这些数据复制到缓存中去,以便下一次不要再到内存中去取。

随着时间的变化,被访问得最频繁的数据不是一成不变的,也就是说,刚才还不频繁的数据,此时已经需要被频繁的访问,刚才还是最频繁的数据,又不频繁了,所以说缓存中的数据要经常按照一定的算法来更换,这样才能保证缓存中的数据是被访问最频繁的。

2、Webcache服务器

秒开缓存服务器,傻瓜式部署方式,方便快捷

3、缓存服务器的缓存概念

这是两种主要的Web缓存:
直接缓存,将用户频繁访问的来自Internet服务器的Web对象的拷贝保存在企业本地网络中。
反向缓存,企业内部Web服务器的Web对象的拷贝保存在企业网络边缘的代理服务器上以提高外界访问企业站点的性能。
Web缓存可以根据不同等级进行配置:
本地缓存:将Web对象缓存的拷贝保存在本地计算机中。大多数流行的Web浏览器默认情况下保留一个先前访问对象的缓存。例如,Internet Explorer称之为“临时Internet文件”。本地缓存拷贝只是在用户频繁地从同一台机器访问页面时有用。
代理缓存:代理服务器是为公司内的多个用户/客户计算机缓存Web对象的单独机器。它们是位于客户端和托管的Web服务器之间的计算机,而且它们比本地缓存效率更高,因为在企业本地网络中的任何用户或计算机访问某个Web对象时,缓存拷贝对想访问该对象的任何其他用户/计算机是可用的,无需到Internet服务器上再次下载它。代理缓存可以在网络边缘与防火墙结合使用。
微软的ISA Server和BlueCoat的工具一样,既包括防火墙也包括缓存代理服务器。缓存服务器也可以是单独的机器,运行免费的缓存软件或商业产品,例如:
Linux版的Squid免费缓存代理
MOWS基于Java分布式web和缓存服务器
Vicomsoft RapidCache Server for Windows或Macintosh
WinProxy for Windows
可升级的缓存解决方案
随着公司的扩大,单一的Web缓存服务器可能无法处理所有的通信或存储足够的Web对象。在这种情况下,可以扩展缓存解决方案以建立一个缓存阵列——一组共同工作以便在组内分配缓存负载的缓存代理服务器。万一某个缓存服务器停机,还提供缺省的容量。
要在阵列中操作,缓存服务器必须能够彼此使用协议进行通信,例如:
WCCP(Web缓存协调协议),Cisco缓存产品以及诸如Squid这样的开源代理使用。
ICP(Internet缓存协议),被Squid和BlueCoat支持。
CARP(缓存阵列路由协议),被ISA Server Enterprise Edition用来管理缓存服务器阵列的失效转移和负载平衡。
CARP能够支持几乎无限的线性扩展以满足快速增长型企业的需求。当向某个阵列中添加或移除一台服务器时,CARP自动调整并再指定URL以有效地分布负载。
缓存阵列能够以等级的或分布式的架构排列。在分布式缓存中,阵列中所有代理服务器处在一个“平等地位”而且负载在它们之间进行分配。在分等级的缓存中,代理以链式进行配置,它们处在不同的等级,所以服务器或阵列连接到其它离Internet更近的服务器或阵列(离Internet最近的那些服务器或阵列被看作“上游的”,那些最远的被看作“下游的”)。这样,缓存内容会尽可能地靠近需要它的用户。
阵列是高度可升级的,因为可以向阵列添加服务器,或向分等级的架构增加阵列等级,而无需扰乱目 前的缓存解决方案。
另一个可扩展性问题是使用缓存减少分支机构网络带宽的能力。分支机构代理可能没有直接连接到Internet,但是可以使用拨号连接或办公室到办公室的WAN连接以便从总公司的上游代理服务器上请求Web对象。
另一个选择是为需要向消费者提供基于Web的应用,可使用诸如由Akamai提供的服务。他们的Web Application Accelerator服务通过下列方法优化性能:
向他们的边缘服务器动态映射请求,并监视Internet路由以便在最快和最可靠的路由上传输。
利用压缩技术和预取技术(pre-fetching)以最小化带宽使用率。
用安全套接层(SSL)保护Web传输。
缓存支持的有些硬件标准:
目前缓存支持的硬件标准:
内存不超过4G,超过的只识别4G。
硬盘不超过2T,超过的只识别2T
存储硬盘数量最大支持4块(如果系统盘是电子盘不包含在内)
另外推荐使用INTEL的机器和网卡。

4、服务器根目录里多出个cache文件夹,这个每天都有文件产生,这是什么?

这个文件夹是临时缓存文件夹,很多软件启动之后都会在这个文件夹里放一些缓存文件。这个很正常。
有这个缓存,会对你的服务器使用频率较高的软件有好处,
适当的做定期清理就OK,没必要太在意。

5、c#cache 缓存是存在什么地方的?

1.Cache 是分配在服务器上的一个公共的内存片。cache 是有时间限制的,超过了服务器设定的过期时间,它就会被服务器回收。
所谓公共指的cache只要一创建是任何一个客户端浏览器都可以通过后台代码访问到它,它面向的是所有用户,相对而言session也是服务器上的一 段内存,但他面向的是单个用户。它是服务器的一段内存块,也就是说每个cache一经创建就占用了服务器资源的。所以从这点来说我们就可以说:并不是 cache越多越好。
cache 可以存放任何对象

2.Cache 怎么样创建以及怎么样销毁
创建cache
在DotNet环境下通过Cache.Insert(string key,object o)方法创建。
其中key 代表cache的ID,o代表存到cache里的对象。

销毁cache 
通过方法Cache.Remove(string key)
其中key 代表cache的 ID.

调用cache
Cache支持装箱/拆箱操作。如你可以把一个DataSet对象ds通过Cache.Insert(“dsCache”,ds)的方式存到Cache中,可以通过拆箱操作 DataSet ds = (DataSet)Cache[“dsCache”]来访问它。

3.什么时候用cache
Cache 一般用于数据较固定,用的较频繁的地方。例如可以把进销存系统中可以把产品信息存入cache,在用户调用产品信息时通过调用cache即可,这样从很大 程度上减少了用户与数据库的交互,提高了系统的性能。反之,cache不适合用在数据变动快,使用范围很窄的地方。例如把一个具体采购单存入 cache中。

4.cache 调用注意事项
Cache是有时间限制的。超过了服务器设置的过期时间,就会被服务器回收。当cache被回收后对应的内存块就会被清空,再次通过cache[“cachekey”]访问对象时返回的就是null值。所以以下这种调用就会出现异常

DataSet ds = (DataSet)Cache[“cacheds”];
DataRow dr = ds.Table[0].Row[0]; //出错,ds为null值,不存在表0。

正确的写法应该是:
DataSet ds;
if(Cache[“cacheds”] != null)
{
ds = (DataSet)Cache[“cacheds”];
}
else
{
ds= GetDsFromDataBase();
}
DataRow dr = ds.Table[0].Row[0];

6、什么是Cache

所谓公共指的cache只要一创建是任何一个客户端浏览器都可以通过后台代码访问到它,它面向的是所有用户,相对而言session也是服务器上的一段内存,但他面向的是单个用户。它是服务器的一段内存块,也就是说每个cache一经创建就占用了服务器资源的。所以从这点来说我们就可以说:并不是cache越多越好。cache 是有时间限制的,超过了服务器设定的过期时间,它就会被服务器回收。cache 可以存放任何对象在DotNet环境下通过Cache.Insert(string key,object o)方法创建。其中key 代表cache的ID,o代表存到cache里的对象。销毁cache 通过方法Cache.Remove(string key)其中key 代表cache的 ID.调用cacheCache支持装箱/拆箱操作。如你可以把一个DataSet对象ds通过Cache.Insert(dsCache,ds)的方式存到Cache中,可以通过拆箱操作DataSet ds = (DataSet)Cache[dsCache]来访问它。Cache 一般用于数据较固定,用的较频繁的地方。例如可以把进销存系统中可以把产品信息存入cache,在用户调用产品信息时通过调用cache即可,这样从很大程度上减少了用户与数据库的交互,提高了系统的性能。反之,cache不适合用在数据变动快,使用范围很窄的地方。例如把一个具体采购单存入 cache中。4.cache 调用注意事项Cache是有时间限制的。超过了服务器设置的过期时间,就会被服务器回收。当cache被回收后对应的内存块就会被清空,再次通过cache[cachekey]访问对象时返回的就是null值。所以以下这种调用就会出现异常DataSet ds = (DataSet)Cache[cacheds];DataRow dr = ds.Table[0].Row[0]; //出错,ds为null值,不存在表0。正确的写法应该是:DataSet ds;if(Cache[cacheds] != null){ds = (DataSet)Cache[cacheds];}else{

7、linux下如何做cache服务器?

是代理服务器吗? 安装配置squid就可以了。

8、DNS Cache 服务是?

这个服务的作用就是可以使得你上网的速度更快一点。
原理是这样的:当你第一次访问一个网站的时候,DNS服务器要通过别的服务器去查询网站所对应的IP,这个查询的时间会比较长,同时DNS服务器就把该网站和其对应的IP存储在DNS cache里面了。当你第二次访问时DNS服务器就直接从cache里面找对应的IP,这样访问该网站的速度就会快很多。
所以要不要开启此服务就看你自己的了~~~~~~
不会很占用资源滴~~~~~~~~

9、缓存服务器Cache-only是怎么工作的

4.CDN 的工作原理

在描述CDN的实现原理,让我们先看传统的未加缓存服务的访问过程,以便了解CDN缓存访问方式与未加缓存访问方式的差别: http://www.video.com.cn/club/attachment.php?aid=939&k=&t=1218114144&noupdate=yes
由上图可见,用户访问未使用CDN缓存网站的过程为:

1)、用户向浏览器提供要访问的域名

2)、浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的IP地址;

3)、浏览器使用所得到的IP地址,域名的服务主机发出数据访问请求;

4)、浏览器根据域名主机返回的数据显示网页的内容。

通过以上四个步骤,浏览器完成从用户处接收用户要访问的域名到从域名服务主机处获取数据的整个过程。CDN网络是在用户和服务器之间增加Cache层,如何将用户的请求引导到Cache上获得源服务器的数据,主要是通过接管DNS实现,下面让我们看看访问使用CDN缓存后的网站的过程: http://www.video.com.cn/club/attachment.php?aid=940&k=&t=1218114144&noupdate=yes
通过上图,我们可以了解到,使用了CDN缓存后的网站的访问过程变为:

1)、用户向浏览器提供要访问的域名;

2)、浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实际IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;在此过程中,使用的全局负载均衡DNS解析,如根据地理位置信息解析对应的IP地址,使得用户能就近访问。
3)、此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,向缓存服务器发出访问请求;

4)、缓存服务器根据浏览器提供的要访问的域名,通过Cache内部专用DNS解析得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求;

5)、缓存服务器从实际IP地址得得到内容以后,一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程;

6)、客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。

通过以上的分析我们可以得到,为了实现既要对普通用户透明(即加入缓存以后用户客户端无需进行任何设置,直接使用被加速网站原有的域名即可访问),又要在为指定的网站提供加速服务的同时降低对ICP的影响,只要修改整个访问过程中的域名解析部分,以实现透明的加速服务,下面是CDN网络实现的具体操作过程。

1)、作为ICP,只需要把域名解释权交给CDN运营商,其他方面不需要进行任何的修改;操作时,ICP修改自己域名的解析记录,一般用cname方式指向CDN网络Cache服务器的地址。

2)、作为CDN运营商,首先需要为ICP的域名提供公开的解析,为了实现sortlist,一般是把ICP的域名解释结果指向一个CNAME记录;

3)、当需要进行sorlist时,CDN运营商可以利用DNS对CNAME指向的域名解析过程进行特殊处理,使DNS服务器在接收到客户端请求时可以根据客户端的IP地址,返回相同域名的不同IP地址;

4)、由于从cname获得的IP地址,并且带有hostname信息,请求到达Cache之后,Cache必须知道源服务器的IP地址,所以在CDN运营商内部维护一个内部DNS服务器,用于解释用户所访问的域名的真实IP地址;

5)、在维护内部DNS服务器时,还需要维护一台授权服务器,控制哪些域名可以进行缓存,而哪些又不进行缓存,以免发生开放代理的情况。

10、Cache何时使用及使用方法

Cache 即高速缓存.那么cache是怎么样提高系统性能与运行速度呢?是不是在任何情况下用cache都能提高性能?是不是cache用的越多就越好呢?下面是个人写下的总结如下,有不对的地方,请各位指正:
1.Cache 是怎么样工作的?
Cache 是分配在服务器上的一个公共的内存片。
所谓公共指的cache只要一创建是任何一个客户端浏览器都可以通过后台代码访问到它,它面向的是所有用户,相对而言session也是服务器上的一 段内存,但他面向的是单个用户。它是服务器的一段内存块,也就是说每个cache一经创建就占用了服务器资源的。所以从这点来说我们就可以说:并不是 cache越多越好。
cache 是有时间限制的,超过了服务器设定的过期时间,它就会被服务器回收。
cache 可以存放任何对象

2.Cache 怎么样创建以及怎么样销毁
创建cache
在DotNet环境下通过Cache.Insert(string key,object o),Insert(objectkey, objObject, CacheDependency Dependency, DateTime.absoluteExpiration, TimeSpan.Zero);等方法创建。
其中key 代表cache的ID,o代表存到cache里的对象,DateTime.absoluteExpiration代码有效时间段。

与cache服务器相关的知识