@phihag已经回答, 但我必须澄清一些事情。
根据密钥(phihag 称它为id, 不与数据库ids 混淆), 混杂的存储存储数据数据。 数据可以大小不一, 这样您就可以存储小位数( 如从数据库提取的1个记录), 或者可以存储大块的数据( 如数百个记录, 或全部完成的 html 页面 ) 。
Memcached is not 通常在与应用程序服务器相同的机器上使用,原因是它设计通过TCP使用(如果设计在同一服务器上工作,可以通过插座进入),并且设计成一个集合服务器。
集合部分很有趣,你可以有10台机器运行Memcached,每个机器为此分配最多10GB的公羊。 10*10=100GB公羊空间。
当您将一个值写入 Memcached 服务器时, 只有一个( 随机的或通过某种算法) 服务器存储它。 当您试图从 Memcached 读取一个值时, 只有存储该值的服务器会发送给您 。
因此,你确实能够将所有数据库/模版/应用程序/文件服务器都安装在同一台机器上,通常情况下,你这样做是为了开发沙箱。但是,你也可以将每个数据库/模版/软件/文件服务器都安装在一台单独的机器上,以及两者的任何其他组合上。
如果您只需要一个 Memcached 服务器, 您可能会同意在与应用程序代码相同的机器上托管服务器 。
如果您开始使用前端缓存服务器, 如清漆, 或者将 NginX 配置为前端缓存服务器, 您需要配置一些 Memcached 服务器来存储这些前端缓存服务器正在缓存的数据 。
如果您将数据库分送到多个服务器, 并将文件服务器分送到一个 CDN, 这意味着您的应用程序会在短期内处理大量数据, 这样您需要很多无法在一个应用程序服务器上使用的内存空间 。
由于扩展一个 Memcached 服务器的内存库与将新服务器的 IP 添加到列表一样容易, 您将会像许多服务器一样水平缩放( 即 Memcached 的典型使用 ) 。