在 Unix 域套接字而不是網路上執行 memcached 是否有任何缺點(假設一台伺服器)?
我正在建立一個 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 埠。