2021久久超碰国产精品最新_最近最新中文字幕大全免费_91视频国产尤物_国产名模A∨精品视频

云南網(wǎng)站建設(shè)創(chuàng)新企業(yè) 昆明多彩網(wǎng)絡(luò)公司

在線qq:540105663

php各種緩存策略對(duì)比

來源:昆明多彩網(wǎng)絡(luò)公司 日期:2010-10-15 閱讀: 發(fā)表評(píng)論

緩存是程序開發(fā)無法避讓的技術(shù),它有很多好的好處,可以加快網(wǎng)站打開速度,減少服務(wù)器負(fù)載等等好處,這里來對(duì)比一下各種緩存機(jī)制的優(yōu)勢(shì)和劣勢(shì)

為什么要使用緩存?

1、 減少數(shù)據(jù)庫訪問,降低數(shù)據(jù)庫壓力

2、加速系統(tǒng)訪問速度,提升系統(tǒng)性能

二、常用的幾種緩存(這里說的均為數(shù)據(jù)緩存)

1、文件緩存(以文件形式存在磁盤上)

2、Memcache(保存在內(nèi)存里)

3、前端代理

4、Mysql內(nèi)存表(這個(gè)算不上緩存)

三、比較幾種緩存的效率,選出適合自己系統(tǒng)用的緩存架構(gòu)

1、文件緩存

常用的文件緩存包括:zend cache,各種框架所帶的緩存,smarty所帶的緩存。優(yōu)點(diǎn):靜態(tài)化頁面使得訪問速度加快,降低服務(wù)器的壓力。缺點(diǎn):對(duì)于實(shí)時(shí)性數(shù)據(jù)或是不斷變化的數(shù)據(jù)會(huì)造成數(shù)據(jù)不同步,當(dāng)然你會(huì)說那我每次可以修改相應(yīng)的緩存或是刪除了再建立,但是這么做一定會(huì)造成io的開銷,還有就是不要存太大文件,太大文件讀取的時(shí)候會(huì)造成系統(tǒng)開銷很大,也不要存太小的文件,太小的文件會(huì)造成磁盤碎片。

2、Memcached

Memcached作為php5的一個(gè)新的擴(kuò)展緩存類,是一個(gè)分布式內(nèi)存緩存系統(tǒng)。Memcached是“分布式”的內(nèi)存對(duì)象緩存系統(tǒng),那么就是說,那些不需要“分布”的,不需要共享的,或者干脆規(guī)模小到只有一臺(tái)服務(wù)器的應(yīng)用,memcached不會(huì)帶來任何好處,相反還會(huì)拖慢系統(tǒng)效率,因?yàn)榫W(wǎng)絡(luò)連接同樣需要資源,即使是UNIX本地連接也一樣。在我之前的測(cè)試數(shù)據(jù)中顯示,memcached本地讀寫速度要比直接PHP內(nèi)存數(shù)組慢幾十倍,而APC、共享內(nèi)存方式都和直接數(shù)組差不多?梢姡绻皇潜镜丶(jí)緩存,使用memcached是非常不劃算的。

Memcahce如何部署:

首先啟動(dòng)n個(gè)memcache進(jìn)程,這些進(jìn)程可以在不同的server的不同端口上.然后使用perl的api可以方便的一次鏈接多個(gè)memcache,存儲(chǔ)讀取機(jī)制不明.不久找到php的一個(gè)MemcachedClient類,基本上就是perl里api的再實(shí)現(xiàn).它使用的fscokopen或者socket系列function來直接讀取memcache----這說明只要清楚memcache的網(wǎng)絡(luò)協(xié)議,你甚至不用裝什么php的memcacheextenstion.看了這個(gè)類的實(shí)現(xiàn),基本上弄清楚,它的分布式應(yīng)用差不多就是將不同的key保存在不同的memcachedaemon,不會(huì)保留多個(gè)副本,也就不存在多memcache同步的問題了。

memcached也經(jīng)常作為服務(wù)器之間數(shù)據(jù)共享的存儲(chǔ)媒介,例如在SSO系統(tǒng)中保存系統(tǒng)單點(diǎn)登陸狀態(tài)的數(shù)據(jù)就可以保存在memcached中,被多個(gè)應(yīng)用共享

優(yōu)點(diǎn):通過簡(jiǎn)單的配置,可以把數(shù)據(jù)放到另一臺(tái)機(jī)子的緩存,通過socket讀取。這種方法比磁盤存儲(chǔ)要快很多,減少io讀取,提升web的性能。
缺點(diǎn):如果memcache機(jī)子重啟,那么所有緩存數(shù)據(jù)將丟失,不適宜存儲(chǔ)永久數(shù)據(jù)和數(shù)據(jù)量大的數(shù)據(jù)。

總結(jié):memcached使用內(nèi)存并不會(huì)得到成百上千的讀寫速度提高,它的實(shí)際瓶頸在于網(wǎng)絡(luò)連接,它和使用磁盤的數(shù)據(jù)庫系統(tǒng)相比,好處在于它本身非常“輕”,因?yàn)闆]有過多的開銷和直接的讀寫方式,它可以輕松應(yīng)付非常大的數(shù)據(jù)交換量,所以經(jīng)常會(huì)出現(xiàn)兩條千兆網(wǎng)絡(luò)帶寬都滿負(fù)荷了,memcached進(jìn)程本身并不占用多少CPU資源的情況。總結(jié):
緩存的目的:讓被期待性高的數(shù)據(jù)暫存入性能相對(duì)好的存儲(chǔ)設(shè)備以達(dá)到使系統(tǒng)性能提升的目的。任何緩存,無論頁面、數(shù)據(jù)、對(duì)象等都是按照上面描述來進(jìn)行策略選擇的。也就是說,不管需要緩存的是什么,你只用選出被期待性高的,然后把他們存入性能相對(duì)較好的存儲(chǔ)設(shè)備就行了。最重要的是找出你系統(tǒng)的瓶頸,然后采用不同的緩存。
 

發(fā)表評(píng)論評(píng)論列表(有 條評(píng)論)