我在 5 个 Web 服务器上运行了 memcache,所有这些服务器都在 php 中的主机列表中,并且在前端进行了负载平衡。因此,由于 memcached 应该是分布式的,php 客户端将决定将键/值对写入哪个节点并保留记录以供以后从同一节点检索,对吗?
或者是 php 客户端代码不够智能,无法做到这一点,而是将数据写入所有服务器,然后从池中随机挑选一个进行读取?
但如果它确实这样做了;写入主机列表/池中的所有实例;那么像这样的工具的目的是什么http://repcached.sourceforge.net/它复制数据以实现冗余。
我询问的原因是,所有负载平衡服务器都在运行它,如果它确实写入池中的所有服务器,那么似乎违背了分布式的目的,所以我应该强制 php 从主机列表中的主机(即本地主机)中提取。
答案1
Memecache 库负责将请求发送到正确的服务器。该库使用您提供的列表将请求发送到不同的服务器,并且 memcache 不进行复制。
请参阅Linux 期刊文章. 它更详细地解释了 memcache 的工作原理。