php各種緩存策略對比
來(lái)源:昆明多彩網(wǎng)絡(luò )公司 日期:2010-10-15 閱讀: 發(fā)表評論
為什么要使用緩存?
1、 減少數據庫訪(fǎng)問(wèn),降低數據庫壓力
2、加速系統訪(fǎng)問(wèn)速度,提升系統性能
二、常用的幾種緩存(這里說(shuō)的均為數據緩存)
1、文件緩存(以文件形式存在磁盤(pán)上)
2、Memcache(保存在內存里)
3、前端代理
4、Mysql內存表(這個(gè)算不上緩存)
三、比較幾種緩存的效率,選出適合自己系統用的緩存架構
1、文件緩存
常用的文件緩存包括:zend cache,各種框架所帶的緩存,smarty所帶的緩存。優(yōu)點(diǎn):靜態(tài)化頁(yè)面使得訪(fǎng)問(wèn)速度加快,降低服務(wù)器的壓力。缺點(diǎn):對于實(shí)時(shí)性數據或是不斷變化的數據會(huì )造成數據不同步,當然你會(huì )說(shuō)那我每次可以修改相應的緩存或是刪除了再建立,但是這么做一定會(huì )造成io的開(kāi)銷(xiāo),還有就是不要存太大文件,太大文件讀取的時(shí)候會(huì )造成系統開(kāi)銷(xiāo)很大,也不要存太小的文件,太小的文件會(huì )造成磁盤(pán)碎片。
2、Memcached
Memcached作為php5的一個(gè)新的擴展緩存類(lèi),是一個(gè)分布式內存緩存系統。Memcached是“分布式”的內存對象緩存系統,那么就是說(shuō),那些不需要“分布”的,不需要共享的,或者干脆規模小到只有一臺服務(wù)器的應用,memcached不會(huì )帶來(lái)任何好處,相反還會(huì )拖慢系統效率,因為網(wǎng)絡(luò )連接同樣需要資源,即使是UNIX本地連接也一樣。在我之前的測試數據中顯示,memcached本地讀寫(xiě)速度要比直接PHP內存數組慢幾十倍,而APC、共享內存方式都和直接數組差不多。可見(jiàn),如果只是本地級緩存,使用memcached是非常不劃算的。
Memcahce如何部署:
首先啟動(dòng)n個(gè)memcache進(jìn)程,這些進(jìn)程可以在不同的server的不同端口上.然后使用perl的api可以方便的一次鏈接多個(gè)memcache,存儲讀取機制不明.不久找到php的一個(gè)MemcachedClient類(lèi),基本上就是perl里api的再實(shí)現.它使用的fscokopen或者socket系列function來(lái)直接讀取memcache----這說(shuō)明只要清楚memcache的網(wǎng)絡(luò )協(xié)議,你甚至不用裝什么php的memcacheextenstion.看了這個(gè)類(lèi)的實(shí)現,基本上弄清楚,它的分布式應用差不多就是將不同的key保存在不同的memcachedaemon,不會(huì )保留多個(gè)副本,也就不存在多memcache同步的問(wèn)題了。
memcached也經(jīng)常作為服務(wù)器之間數據共享的存儲媒介,例如在SSO系統中保存系統單點(diǎn)登陸狀態(tài)的數據就可以保存在memcached中,被多個(gè)應用共享
優(yōu)點(diǎn):通過(guò)簡(jiǎn)單的配置,可以把數據放到另一臺機子的緩存,通過(guò)socket讀取。這種方法比磁盤(pán)存儲要快很多,減少io讀取,提升web的性能。
缺點(diǎn):如果memcache機子重啟,那么所有緩存數據將丟失,不適宜存儲永久數據和數據量大的數據。
總結:memcached使用內存并不會(huì )得到成百上千的讀寫(xiě)速度提高,它的實(shí)際瓶頸在于網(wǎng)絡(luò )連接,它和使用磁盤(pán)的數據庫系統相比,好處在于它本身非常“輕”,因為沒(méi)有過(guò)多的開(kāi)銷(xiāo)和直接的讀寫(xiě)方式,它可以輕松應付非常大的數據交換量,所以經(jīng)常會(huì )出現兩條千兆網(wǎng)絡(luò )帶寬都滿(mǎn)負荷了,memcached進(jìn)程本身并不占用多少CPU資源的情況。總結:
緩存的目的:讓被期待性高的數據暫存入性能相對好的存儲設備以達到使系統性能提升的目的。任何緩存,無(wú)論頁(yè)面、數據、對象等都是按照上面描述來(lái)進(jìn)行策略選擇的。也就是說(shuō),不管需要緩存的是什么,你只用選出被期待性高的,然后把他們存入性能相對較好的存儲設備就行了。最重要的是找出你系統的瓶頸,然后采用不同的緩存。
發(fā)表評論評論列表(有 條評論)