在Unix域套接字而不是networking上运行memcached有什么缺点(假设一台服务器)?

我设置了一个Django网站来使用memcached来caching它的页面。

(每个页面的内容都不会经常改变,所以我希望大部分时间都能从memcached中获得大部分的网站,从而能够很好地处理大量的stream量。)

网站和memcached都将运行在一台运行在Debian Squeeze上的虚拟服务器上。

考虑到这个设置,我想我可能会设置memcached通过Unix域套接字(请参阅http://code.google.com/p/memcached/wiki/NewConfiguringServer#Unix_Sockets )来监听,而不是通过networking接口。 虽然我的虚拟服务器是相当广泛的防火墙,因为我只需要memcached是由一个本地用户(即Django站点)访问,我想我可能保持限制。

当Memcached和它的客户端在同一个服务器上时,是否有任何缺点让memcached监听Unix域套接字? 例如,一个Unix域套接字可能比在127.0.0.1上侦听更慢?

(对于这样一个新手问题抱歉 – 你可能知道,我之前没有使用过memcached,或者在Unix / Linux上做过很多工作。)

通常,unix套接字与networking端口问题如下所示:

Unix套接字的缺点

只能在本地访问

Unixsockets的好处

消除TCP / IP开销

networking缺陷

安全TCP / IP开销

networking优势

服务可以通过networking访问

我将其用作几乎任何服务的一般指南,包括memcached,MySQL和其他服务。

这是大大简化,但是我从哪里开始。

如果您只在本地访问memecached,build议仅侦听本地IP地址127.0.0.1或使用unix套接字。

即使您有防火墙和受保护的环境,这也是一个很好的做法。 您将服务器从此networking移到另一个不可信networking的图像。 所以,你必须担心保护你的memcached端口。