如何清理系统缓存?
缓存是指临时文件交换区,电脑把最常用的文件从存储器里提出来临时放在缓存里,就像把工具和材料搬上工作台一样,这样会比用时现去仓库取更方便。 经常清理有助于电脑的运行速度。
缓存分为2种,
1是服务器上的缓存,另外一个是本机电脑里的缓存
先清理服务器上的,服务器上的缓存比较简单,就放在您FTP下的WORK文件夹里,您可以把这个文件夹整个删除,重启TOMCAT后系统会自动重新建立这个文件夹,删除WORK后就清理了服务器上的缓存,
服务器上的缓存和本地的缓存要其一清理才有效果,现在看下如何清理本地的缓存文件
1:点击IE浏览器菜单栏中的“工具”,选择“Internet选项”。
2:在常规标签页,点击“Internet临时文件”区域的“删除Cookies(I)”,在弹出的“删除Cookies”框中点击“确定”。
3:点击“Internet临时文件”区域的“删除文件(F)”,在弹出的“删除文件”框中勾选“删除所有脱机内容(D)”,然后点击“确定”。
4:点击“Internet选项”下方的“确定”结束操作,并刷新或重启您的浏览器即可。
这里要特别指出的是:
1因为缓存只是内存中少部分数据的复制品,所以CPU到缓存中寻找数据时,也会出现找不到的情况(因为这些数据没有从内存复制到缓存中去),这时CPU还是会到内存中去找数据,这样系统的速度就慢下来了,不过CPU会把这些数据复制到缓存中去,以便下一次不要再到内存中去取。
被访问得最频繁的数据不是一成不变的
2因为随着时间的变化,被访问得最频繁的数据不是一成不变的,也就是说,刚才还不频繁的数据,此时已经需要被频繁的访问,刚才还是最频繁的数据,后来又不频繁了,所以说缓存中的数据要经常按照一定的算法来更换,这样才能保证缓存中的数据是被访问最频繁的
关于一级缓存和二级缓存
为了分清这两个概念,我们先了解一下RAM。
RAM和ROM是相对的,RAM是掉电以后,其中信息就消失的那一种,ROM是掉电以后信息,也不会消失那一种。
RAM又分两种,一种是静态RAM,SRAM;一种是动态RAM,DRAM。
前者的存储速度要比后者快得多,我们使用的内存一般都是动态RAM。
有的菜鸟就说了,为了增加系统的速度,把缓存扩大不就行了吗,扩大的越大,缓存的数据越多,系统不就越快了吗。
缓存通常都是静态RAM,速度是非常的快,但是静态RAM集成度低(存储相同的数据,静态RAM的体积是动态RAM的6倍),价格高(同容量的静态RAM是动态RAM的四倍),由此可见,扩大静态RAM作为缓存是一个非常愚蠢的行为,但是为了提高系统的性能和速度,我们必须要扩大缓存,这样就有了一个折中的方法,不扩大原来的静态RAM缓存,而是增加一些高速动态RAM做为缓存,这些高速动态RAM速度要比常规动态RAM快,但比原来的静态RAM缓存慢,我们把原来的静态RAM缓存叫一级缓存,而把后来增加的动态RAM叫二级缓存。
一级缓存和二级缓存中的内容都是内存中访问频率高的数据的复制品(映射),它们的存在都是为了减少高速CPU对慢速内存的访问。
通常CPU找数据或指令的顺序是:先到一级缓存中找,找不到再到二级缓存中找,如果还找不到就只有到内存中找了。
清除本地DNS缓存windows的步骤如下:
1、利用快捷键打开运行窗口,按住 win+r 或者点击开始,再点击运行打开;
2、在运行窗口中输入cmd,然后点击确定。
3、在打开的窗口中输入 ipconfig/flushdns 按回车键。
4、此时显示 “已成功刷新DNS解析缓存”
dns是domain name service的缩写,它的作用简单的说,可以理解为:将域名翻译成ip地址。互联网,或者服务器,是看不懂域名的,它们只懂IP地址,dns其实就是一个翻译,将服务器看不懂的语言翻译成它们看得懂的语言,这样用户在浏览器中输入域名,服务器就可以通过dns知道用户请求的是哪个网站,然后才将对应的网站内容返回给用户。
一般情况下,我们的电脑是不需要手动去清理DNS缓存的,不过有些时候,某些网站因域名DNS服务器地址变更,而我们的电脑还停留在历史访问的DNS缓存上,这样就会出现访问网站解析出错,需要手动去更新清除电脑DNS缓存。这样,当电脑重新访问某个存在DNS变更的网站时,能够重新获取到新的可用地址,从而可以正常访问。
DNS 域名系统给应用访问带来了额外的时延,另外由于 DNS 域名解析采用不可靠的 UDP 协议通讯,受内外部网络环境的影响较大,特别是在有丢包的情况下,导致的时延可能达到数秒。为缓解此问题,DNS 解析采用了缓存机制。
在客户第一次访问之后,递归服务器和客户端都会缓存到该域名的解析记录,并设置相应的缓存生存时间(TTL),在TTL有效期内,客户再次对同域名发起访问时,直接通过客户端缓存和本地DNS服务器高速缓存解析,不再需要经过迭代查询过程。DNS缓存可极大提升DNS域名解析的效率,一定程度上减少了服务器到用户之间环境对DNS域名解析的影响。
DNS缓存使用中的问题
DNS缓存省去了冗长的全球递归查询阶段,极大提升了解析和访问速度,可以让用户获得更快更好的访问体验。但如果DNS缓存设置使用不当,也会给用用户访问体验带来负面影响,甚至影响到正常业务的使用。
(1)缓存刷新不受控
当企业的域名发生变更时,并没有办法刷新全球各地的递归服务器缓存以及客户端上的DNS缓存,因此在每个缓存TTL值超时之前,客户发起请求仍然会按照缓存记录的原有映射关系发起请求,这就可能会出现站点不可达或者访问到错误的网站。只有等递归服务器和客户端上的DNS缓存失效后,才能重新发起请求,得到最新的映射关系。
(2)解析权和缓存值被修改
一些小运营商出于规模、节约成本的考虑,将域名转发到较大运营商进行解析,并把收到的域名缓存值更改为较长的值,这会带来两个方面的问题:
一是,权威DNS接收到的请求IP地址不是客户所在运营商IP地址,客户的请求可能会被引导至错误的线路,导致客户访问慢;
二是,企业域名发生改变后将等待更长的超时时间才能正常访问业务,同样会给客户带来较差的体验。
基于以上这两个问题,为了保证DNS解析安全性和准确性,我们需要定期对DNS缓存进行清理。
如何清理DNS缓存?
(1)通过“开始—运行—CMD”进入命令行模式。
(2)输入ipconfig/,可看到有一个名为/flushdns的命令,通过执行该命令可以清除DNS缓存信息。
(3)执行ipconfig/flushdns命令,当出现“已成功刷新DNS缓存”的提示时说明当前计算机的缓存信息已经被成功清除。
(4)接下来我们再访问域名时,就会请求DNS服务器获取最新的解析地址,从而避免解析错误情况的发生。
DNS缓存清理完毕后,再次访问域名,就会委托递归解析服务器发起全球递归查询,从而获得最新的解析记录。
从DNS缓存的原理和作用中我们可以看出,DNS缓存虽然可以在一定程度省去了全球递归查询的时间,提高了解析和访问速度,但是也存在DNS劫持、解析不生效等安全隐患,所以我们需要定期对DNS缓存进行清理,才能保证解析的准确性和安全性。
memcache确实是一个加速很好的缓存器,什么都可以缓存~
——方法一——-cmd上直接清除,清除所有缓存
$ telnet localhost 11211
Trying 127001
Connected to localhost
Escape character is '^]'
flush_all
OK
quit
Connection to localhost closed by foreign host
——方法二——-PHP清理缓存方法
<php
$memcache = new Memcache;
$memcache->connect(‘localhost’, 11211) or die (“Could not connect”);
$version = $memcache->getVersion();
echo ”Server’s version: ”$version”
\n”;
>
<php
$memcache = new Memcache;
$memcache->connect(‘localhost’, 11211) or die (“Could not connect”);
print_r($memcache->getStats());
/
Array
(
[pid] => 8052
[uptime] => 9205
[time] => 1205898428
[version] => 125 wwwshellseccom
[pointer_size] => 32
[rusage_user] => 0008000
[rusage_system] => 0000000
[curr_items] => 1
[total_items] => 17
[bytes] => 57
[curr_connections] => 2
[total_connections] => 15
[connection_structures] => 3
[cmd_get] => 9
[cmd_set] => 23
[get_hits] => 5
[get_misses] => 4
[evictions] => 0
[bytes_read] => 671
[bytes_written] => 850
[limit_maxbytes] => 10485760
[threads] => 1
)
/
>
<php
$memcache = new Memcache;
$memcache->connect(‘localhost’, 11211) or die (“Could not connect”);
$memcache->set( ’name’, ’leo’, 0, 30);
if(!$memcache->add( ’name’, ’susan’, 0, 30))
{
echo ’susan is exist’;
};
$memcache->replace( ’name’, ’lion’, 0, 300);
echo $memcache->get( ’name’);
$memcache->delete( ’name’, 5);
>
<php
function _callback_memcache_failure($host, $port) {
print ”memcache ’$host:$port’ failed”;
}
$memcache = new Memcache;
$memcache->addServer(’1921681116′, 11211);
$memcache->setServerParams(’1921681116′, 11211, 1, 15, true,
‘_callback_memcache_failure’);
echo $memcache->getServerStatus(’1921681116′, 11211);
>
<php
$memcache = new Memcache;
$memcache->connect(‘localhost’, 11211);
$memcache->set(‘test_item’, 8);
$memcache->increment(‘test_item’, 4);
echo $memcache->decrement(‘test_item’, 7);
// 显示 5
>
/usr/local/bin/memcached -d -m 10 -u root -l 127001 -p 11211 -c 256 -P
/tmp/memcachedpid
memcached的服务正式启动
Memcache::add — 添加一个值,如果已经存在,则返回false
Memcache::addServer — 添加一个可供使用的服务器地址
Memcache::close — 关闭一个Memcache对象
Memcache::connect — 创建一个Memcache对象
memcache_debug — 控制调试功能
Memcache::decrement — 对保存的某个key中的值进行减法操作
Memcache::delete — 删除一个key值
Memcache::flush — 清除所有缓存的数据
Memcache::get — 获取一个key值
Memcache::getExtendedStats — 获取进程池中所有进程的运行系统统计
Memcache::getServerStatus — 获取运行服务器的参数
Memcache::getStats — 返回服务器的一些运行统计信息
Memcache::getVersion — 返回运行的Memcache的版本信息
Memcache::increment — 对保存的某个key中的值进行加法操作
Memcache::pconnect — 创建一个Memcache的持久连接对象
Memcache::replace — R对一个已有的key进行覆写操作
Memcache::set — 添加一个值,如果已经存在,则覆写
Memcache::setCompressThreshold — 对大于某一大小的数据进行压缩
Memcache::setServerParams — 在运行时修改服务器的参数
建议用面向对象的方式来测试这个库:
Memcache::getVersion方法的作用是返回运行的Memcache的版本信息。
Memcache::getStats 方法的作用是返回服务器的一些运行统计信息。Memcache::getStats方法有三个参
数,第一个参数表示要求返回的类型:reset, malloc, maps, cachedump, slabs, items, sizes;第二个
参数和第三个参数是在第一个参数设置为“cachedump”时使用的。Memcache::getExtendedStats方法的
作用是获取进程池中所有进程的运行系统统计。
Memcache::connect方法的作用是创建一个Memcache对象。Memcache::pconnect方法的作用是创建一个
Memcache的持久连接对象。Memcache::close方法的作用是关闭一个Memcache对象。
Memcache::set 方法的作用是添加一个值,Memcache::set方法有四个参数,第一个参数是key,第二个参
数是value,第三个参数可选,表示是否压缩保存,第四个参数可选,用来设置一个过期自动销毁的时间
。Memcache::add方法的作用和Memcache::set方法类似,区别是如果 Memcache::add方法的返回值为
false,表示这个key已经存在,而Memcache::set方法则会直接覆写。 Memcache::get方法的作用是获取
一个key值,Memcache::get方法有一个参数,表示key。Memcache::replace 方法的作用是对一个已有的
key进行覆写操作,Memcache::replace方法有四个参数,作用和Memcache::set方法的相同。
Memcache::delete方法的作用是删除一个key值,Memcache::delete方法有两个参数,第一个参数表示key
,第二个参数可选,表示删除延迟的时间。
memcache_debug()函数的作用是控制调试功能,前提是php在编译的时候使用了–enable-debug选项,否
则这个函数不会有作用。
Memcache::addServer 方法的作用是添加一个可供使用的服务器地址,Memcache::addServer方法有8个参
数,除了第一个参数意外,其他都是可选的,第一个参数表示服务器的地址,第二个参数表示端口,第三
个参数表示是否是一个持久连接,第四个参数表示这台服务器在所有服务器中所占的权重,第五个参数表
示连接的持续时间,第六个参数表示连接重试的间隔时间,默认为15,设置为-1表示不进行重试,第七个
参数用来控制服务器的在线状态,第8个参数允许设置一个回掉函数来处理错误信息。
Memcache::setServerParams方法的作用是在运行时修改服务器的参数,Memcache::setServerParams方法
有六个参数,Memcache::addServer方法少了第三和第四个参数。 Memcache::getServerStatus方法的作
用是获取运行服务器的参数,两个参数分别表示的地址和端口。
Memcache::flush方法的作用是清除所有缓存的数据,但是不会削去使用的内存空间。
Memcache::increment方法的作用是对保存的某个key中的值进行加法操作,Memcache::decremen方法的作
用是对保存的某个key中的值进行减法操作。
每台服务器上都有IIS,IIS对每个人并不陌生,IIS缓存一个原因能提高服务器能力,但负面却给网站带来很严重问题。
检查HTTP 协议,网友们就会发现参考服务器返回的 HTTP 头里面能定义这种一条命令 Cache-Control: no-cache。这种可以大家处理疑问的做法。
第1步:打开 IIS 配置管理软件(Internet 信息服务(IIS)管理器)。
选中一个网站(可能您希望为所存在站点配置,请选择点中“网站”那个图标),点“属性”选项,会弹出一个配置窗口。
第2步:选择“HTTP 头” TAB 标签,接下来您会观察:“自己选择 HTTP 头”这么一栏。OK!可以这个地方了,终于到了!
第3步:点旁边的“添加(D)”选项,来添加上那条命令。
在弹出的窗口中:“自己选择 HTTP 头名(C)”中敲入:“Cache-Control”,在“自己选择 HTTP 头值(U)”中敲入:“no-cache”。
好了,到这个地方就所存在 OK 了,一路点“确定”保存就好。这种时候服务器IIS缓存已被完全清除了。
0条评论