問題描述
我不斷聽到一些 PHP(操作碼) 快取,如 – APC,XCache,Memcache,eAccelerator 等。
但我無法想像如何去選擇一個。除了快取系統應該提供的效能優勢外,還有哪些其他因素應該引起關注。
為什麼你會說 X 快取系統比 Y 好?我不太擔心相對績效的增長。任何兩個系統之間的微小差異都不大。
如果我的問題的一般答案是不可能的,這裡有幾個指標。我使用專門的 VPS 與 Mediatemple(根訪問) 。 RAM 是 512 MB(物理)+ 400MB(交換) 我關心 WordPress 及其表兄弟 WordPress-MU 和 BuddyPress 。我們的程式碼/網站中有 90%屬於 WordPress 系列。
提前感謝一些幫助。
最佳解決方案
您列出的產品有不同的用途。
OPCode 快取
在這個 Wikipedia list 上有許多 PHP 加速器 (OPCaches) 。與開放原始碼產品一樣,它們都是非常相似的。 XCache 是lighttp PHP 加速器,是執行該 HTTPd 時的預設選項。它也適用於 Apache,但 APC 似乎在社交方面稍微更加 「與其他人打交道」,作為 PHP 的一部分正式支援,併發布了具有官方 PHP 發行版的 in-step 。
我放棄了 eAccelerator 的使用,因為它的發展緩慢,並且與 PHP 的釋出滯後,APC 提供的官方祝福狀態具有類似的效能。
這些產品通常會下降; 沒有程式碼改變即時效能提升。使用大型程式碼庫 (Drupal,Wordpress),效能可以達到 3x better,同時降低響應時間和記憶體使用量。
資料快取
Memcache 是一個略有不同的產品 – 您可能會認為它是一個輕量級的鍵值系統,可以擴充套件到多個伺服器。必須增強軟體以支援 Memcache,並且比其他方面更好地解決了某些問題。如果您的網站上有即時股票價值清單,您可以使用 Memcache 來保留您網站上顯示的當前價值的居民名單。您可以使用它來儲存會話資料以進行短期重用。您不會將其用於其他方面,例如 full-page 快取或作為 MySQL 的替代品。
還有 Wordpress 外掛,如 WP-Super-Cache,可以大大提高 Wordpress 的效能 (實際上,WP-Super-Cache 可以在許多情況下競爭靜態的 HTML 網站)
總而言之,如果您想要 「設定並忘記它,支援良好的產品」,我將非常推薦 APC 。
次佳解決方案
在 stackoverflow 上釋出了一個很好的答案,它很好地回答了你的問題。
第三種解決方案
APC 將內建到 PHP6 中,因此它是一個合理的選擇。我使用它,效能提升是驚人的。如果您需要快取除操作碼之外的其他內容 (即資料庫查詢結果),那麼也可以使用 APC,但不可能在多個伺服器之間共享 APC 快取。如果您只需要在單個伺服器上進行快取,APC 就會很好。如果您需要擴充套件到多個伺服器,並希望在它們之間共享一個快取,那麼 memcached 就是你的人。
不過,我會做的一件事是為任何 (non-opcode) 快取建立一個包裝類。這樣,您可以在不更改程式碼的情況下交換快取引擎。
第四種方案
只是要注意事情有所改變,似乎 APC 不會包含在 PHP 6 核心中。
APC 發展緩慢,看起來不會像 PHP 5.5 相容。因為這樣,看起來像 PHP 的人會將 Zend OPCache 操作碼快取擴充套件設定為 PHP CORE 擴充套件。你在這裡看更多 http://wiki.php.net/rfc/optimizerplus 。
重要提示:Zend OPCache 沒有像 APC 這樣的使用者資料快取,所以如果你需要使用者資料快取,你可以和 Memcache 一起使用它。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。