内存缓存是如何分布的?

Mik*_*ike 14 performance php5 memcached

我在 5 个 Web 服务器上运行了 memcache,所有这些服务器都在 php 的主机列表中,并且在前端进行了负载平衡。因此,既然 memcached 应该是分布式的,那么 php 客户端将决定将键/值对写入哪个节点并保留记录以供以后从同一节点检索,对吗?

或者是 php 客户端代码不够聪明,无法做到这一点,而是将数据写入所有服务器,然后从池中随机抽取一张图片进行读取?

但如果它这样做了;写入主机列表/池中的所有实例;那么像http://repcached.sourceforge.net/这样的工具的目的是什么,它复制数据以实现冗余。

我问的原因是因为所有负载平衡的服务器都在运行它,如果它确实写入池中的所有服务器,那么它似乎违背了分发它的目的,所以我应该强制 php 从主机中提取在 localhost 的主机列表中。

Sam*_*eer 17

Memecache 库负责将请求发送到正确的服务器。该库使用您提供的列表将请求发送到不同的服务器,并且 memcache 不进行复制。

请参阅Linux 期刊文章。它更详细地解释了内存缓存的工作原理。