APC,eAccelerator,XCache,memcached,Redis的區別

網絡營銷對於人類WordPress建立站、做電商網絡推廣,給網站提升速度,能在一定程度上提升SEO效果。

在安裝了VestaCP控制面板之類的Linux系統之後,可以選擇一些緩存擴展來提高PHP的速度。

CACHE緩存擴展加速第1張

經常會看到的是這些緩存擴展:

  1. APC
  2. 電子加速器
  3. 緩存
  4. memcached的
  5. Redis的

它們之間有什麼區別?作用是什麼?我們該如何選擇?

陳溈亮會在本文給你答案。

一、Alternative PHP Cache(APC緩存)

Alternative PHP Cache(APC緩存) 第2張

Alternative PHP Cache(APC緩存)是PHP的開源緩存工具,用於緩存Opcode(目標文件)PHP中間碼。

APC的緩存,分為2部分:

  1. 系統緩存
  2. 用戶數據緩存

系統緩存是自動使用的:

  • 這意味著APC緩存PHP文件源代碼的編譯結果,然後再次調用時間戳。
  • 如果它尚未過期,就使用緩存代碼運行它。
  • 默認緩存為3600(一小時)。

但這仍然浪費了大量的CPU時間。

因此,你可以將系統緩存設置為永不過期的php.ini文件裡,設置system緩存為永不過期(apc.ttl=0)。

但是,如果執行此操作,則需要在更改PHP代碼後,重新啟動Web服務器(例如,apache)。

目前,APC性能測試一般是指這一層的緩存;

從字面上看,Alternative PHP Cache(APC緩存)也可以被視為內存緩存擴展,

它是一個數據庫緩存擴展。

二、eAccelerator

eAccelerator是一個免費的開源PHP加速器。

  • 優化和動態內容緩存,可以提高PHP腳本的緩存性能。
  • 因此可以讓PHP腳本在編譯狀態種,降低服務器的資源消耗。
  • 它還優化了腳本,提高執行效率,將PHP代碼的效率提高1-10倍。
  • eAccelerator暫不支持PHP5.5以上的版本。

如同從文字理解的那樣:eAccelerator是PHP中的加速器擴展。

三、XCache

XCache是一個開源的opcode緩衝器/優化器,可以提高服務器上PHP的性能。

  • 可以通過將編譯後的PHP數據,緩存到共享內存來避免重複編譯過程
  • 並且可以直接使用緩衝區,來編譯代碼提高速度。
  • 它通常可以將頁面生成速率提高2到5倍,並減少服務器負載。

實際上,XCache是PHP加速器擴展。

四、memcached

Memcached是一個高性能的分佈式內存對象緩存系統:

  • 用於動態Web應用程序以減少數據庫負載。
  • 它通過在內存中緩存數據和對象,來減少數據庫讀取的數量,從而提供動態的、數據庫驅動的網站的速度。

從文字中可以理解到:內存緩存擴展,更多用於集群服務器,主要用於分佈式緩存。

Memcached被認為是數據庫緩存擴展。

五、Redis

Redis是一個高性能的key-value數據庫。

Redis 第3張

  • redis的出現極大地彌補了memcached等,缺乏keyalue存儲的問題。
  • 在某些情況下,它可以補充關係數據庫。
  • 在許多情況下,Redis經常和memcached做比較。

很多人認為Redis可以完全取代memcached,因為Redis數據類型更豐富,性能不在memcached之下:

  • redis有的memcached卻沒有;
  • memcached有redis都有。

據我所知,新浪的微博和其他周邊產品依賴於Redis,可以看出它功能強大。

PHP緩存、數據庫緩存擴展區別

1)PHP緩存擴展:

  • eAccelerator、XCache是PHP緩存擴展。

2)數據庫緩存擴展:

  • Redis、memcached、APC緩存是數據庫緩存擴展。

(通常2者只需要安裝其中1個就行了,不要貪心)

有人測試後,發現Cache數據緩存超過一定閾值,APC性能不如mcached緩存。

因此,在選擇緩存擴展時,一些人會選擇xcache + memcached 的組合,或是xcache + redis 的組合。

如果在同時安裝多個緩存擴展出現錯誤,建議只安裝一個緩存擴展,其它的卸載。

PHP加速器比較總結

  • 通過測試,eAccelerator是請求時間和內存使用的最佳組合,但eAccelerator暫不支持PHP5.5以上的版本。
  • 通過測試,有使用加速器的速度,比沒有加速器快3倍。

以上就是APC、eAccelerator、XCache、memcached、Redis之間的作用和區別。

發表評論

您的郵箱地址不會被公開。 必填項已用 * 標註

回到頁首