簡體   English   中英

我可以在同一台服務器上使用APC和memcached嗎?

[英]Can I use APC AND memcached on the same server?

我正在使用memcache來緩存對象,但是想添加像APC這樣的操作碼加速器。 由於它們都涉及緩存,我不確定它們是否會“踩到彼此的腳趾”,即我不確定memcache是​​否已經是OP代碼加速器。

有人可以澄清嗎? 我想將它們用於兩者 - 用於不同的事情。 用於緩存我的對象的memcache和用於代碼加速的APC

Memcache更像是分布式對象緩存而不是APC或XCache,它將PHP字節碼存儲在內存中,因此您不必每次都解析它。 他們的主要目的是不同的。

例如,如果您有一個人們經常請求的CPU密集型數據庫查詢,您可以將結果對象緩存在memcache中,然后引用它而不是一直重新運行該查詢。

APC和XCache確實具有類似的對象緩存功能,但您僅限於主機。 如果您希望10個不同的服務器都可以訪問該對象而無需為每個服務器重新執行查詢,該怎么辦? 你只需將它們引導到你的memcache服務器就可以了。 如果您只有一台服務器,您仍然可以獲益,因為如果您需要分支到更多的盒子,使用memcache將有助於您將來擴展。

要考慮的主要問題是,如果您認為您的應用需要擴展。 Memcache有更多的開銷,因為你必須使用TCP連接來訪問它,而不僅僅是對APC / Xcache共享對象的函數調用。

但是,Memcache具有以下優點:

  • 比磁盤或重新運行查詢更快。
  • 擴展到多個服務器。
  • 使用許多不同的語言,您的對象不會僅限於PHP + APC / Xcache。
  • 所有進程/語言都可以訪問相同的對象,因此您不必擔心PHP子進程是否具有空對象緩存。 如果您正在運行PHP-FPM,這可能不是什么大問題。

在大多數情況下,我建議在memcache中緩存您的對象,因為它不會更難以及將來更靈活。

請記住,這僅適用於緩存對象。 內存緩存沒有任何字節或PHP加速功能,這就是為什么我會運行它與APC或XCache將並排側

是的,你可以同時使用它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM