Memcached

在 Unix 域套接字而不是網路上執行 memcached 是否有任何缺點(假設一台伺服器)?

  • May 30, 2012

我正在建立一個 Django 網站以使用 memcached 來記憶體其頁面。

(每個頁面的內容根本不會經常變化,所以我希望大部分網站大部分時間都由 memcached 提供服務,從而能夠很好地處理大量流量。)

網站和 memcached 都將執行在一個虛擬伺服器上,執行在 Debian Squeeze 上。

鑑於這種設置,我想我可能會將 memcached 設置為通過 Unix 域套接字(請參閱http://code.google.com/p/memcached/wiki/NewConfiguringServer#Unix_Sockets)而不是通過網路介面進行偵聽。儘管我的虛擬伺服器有相當廣泛的防火牆,因為我只需要一個本地使用者(即 Django 站點)可以訪問 memcached,但我認為我不妨限制它。

**當 memcached 和它的客戶端都在同一台伺服器上時,讓 memcached 通過 Unix 域套接字偵聽有什麼缺點嗎?**例如,一個 Unix 域套接字可能比監聽 127.0.0.1 慢嗎?

(為這樣一個新手問題道歉——你可能會說,我以前沒有使用過 memcached,也沒有在 Unix/Linux 上做過很多事情。)

通常,unix 套接字與網路埠的問題分解如下:

Unix 套接字的缺點

只能本地訪問

Unix 套接字的好處

消除 TCP/IP 成本

網路缺點

安全 TCP/IP 成本

網路優勢

可以通過網路訪問服務

我將其用作幾乎所有服務的一般指南,包括 memcached、MySQL 和其他服務。

這被大大簡化了,但這是我開始的地方。

如果只在本地訪問 memecached,建議只監聽本地 IP 地址127.0.0.1或使用 unix socket。

即使您有防火牆和受保護的環境,這也是一個很好的做法。您已將伺服器從該網路移至另一個不受信任的網路的圖像。因此,您必須擔心保護您的 memcached 埠。

引用自:https://serverfault.com/questions/339446