eAccelerator與memcached的區別

2021-08-27 06:17:23 字數 1583 閱讀 6613

歡迎各位加入群:206981178,共同學習

eaccelerator和memcached,是目前較為主流的兩個可使用在php之中的快取加速工具.

eaccelerator專門為php開發,而memcached不僅僅用在php之中,其他所有的語言都可以使用.

eaccelerator的主要功能:

1. 快取php檔案的執行**:在被快取的**再次被呼叫時,將直接從記憶體讀取,從而在很大程度了php執行的速度.

2. 提供了共享記憶體操作函式:使用者可以將自己的常見非資源對像,儲存到記憶體之中,並可以隨時讀取出來.

memcached的主要功能:

提供共享記憶體操作函式,可以儲存和讀取資料

兩者的共同點:

共同點:都提供了共享記憶體操作函式,可以用來儲存和讀取自己的資料

兩者的區別:

eaccelerator作為php的擴充套件庫存在,那麼僅在php執行時,可以操作和讀寫共享記憶體,一般情況,只能由操作共享記憶體的程式自己呼叫.

同時,eaccelerator可以快取php程式的執行**,提公升程式的調入和執行速度.

memcached主要作為乙個共享記憶體伺服器,其php擴充套件庫僅僅作為php到memcached的連線庫存在,類似mysql擴充套件庫.因而,memcached可以完全脫離php,其共享的資料,可以被不同的程式呼叫.

根據兩者的不同,我們將他們使用在真真需要的地方:

eaccelerator主要用於單機php提速,快取中間資料.對於實時性高,但資料操作量小的情況下,非常實用.

memcached用於分布式或者集群系統,多台伺服器可以共享資料.對於實時性高,同時資料操作量大的情況下,非常實用.

對memcached的正確認識

剛開始,聽說用memcached來快取資料到記憶體,然後對資料進行操作,(這裡的操作包括了,查詢和更新),聽起來真是太棒了。這樣,一定時間內不用運算元據庫。真是太好了。

然後我一直在想乙個問題,查詢確實可以,可是更新記憶體要怎麼處理併發?難道,我們的memcached 來有這般功能,如果這樣,那真是太神了。

可是事情,並不是像說的那樣。對memcached的這樣認識是不正確的。

memcache和其他的cache是一樣的,當資料更新之後,cached 的東西,也就是 out date 的東西了。

在網上看了,前輩們對memcached的闡述,更是說明了這點。

所以,不應該指望,直接更新memcached,而省略了資料庫這一環節。

這前認為 他提供的set方法是用來更新資料庫的,那時自己的痴心妄想。

其實這個方法是將資料庫中的記錄快取到memcached中,同時指定它的有效期是多長。

現在我想到了,為什麼,我們的memcached中的內容一直都沒變化,即使我已經刪除了該條記錄。

我們在set()的時候,並沒有設定它的過期時間,也就預設是0,即永不過期。只要memcached伺服器沒有重起,它就一直存在。

這樣說來,我們的ror專案中,使用快取來減少資料庫的檢索,而不能指望讓memcached可以讓我們連更新資料庫也免了。

如果真的連更新資料庫也免了,就真的跨入了非資料庫時代,哈哈。估計不太可能。如果我們能保證使用者是以佇列的方式 ,乙個接著乙個來的話。

還是另想辦法來減輕更新帶來的壓力。

eAccelerator 配置和引數

背景 eaccelerator 是乙個免費開源的php加速 優化 編譯和動態快取的專案,它可以通過快取php 編譯後的結果來提高php指令碼的效能。通過使用eaccelerator,可以優化php 執行速度,降低伺服器負載,使php應用執行速度提高1 10倍。eaccelerator 專案誕生於20...

eAccelerator 配置引數詳解

from eaccelerator.shm size 32 eaccelerator 可以使用的共享記憶體的數量 以兆為單位 0 是指作業系統的預設值.預設值是 0 可根據伺服器的實際情況來調整,16,32,64,128都是可以的。eaccelerator.cache dir home php tm...

安裝eaccelerator加速PHP

tar jxvf eaccelerator 0.9.6.tar.bz2 cd eaccelerator 0.9.6 phpize configure enable eaccelerator shared with php config usr bin php config make make ins...