memcache如何分配?


14

我已经在5个Web服务器上运行了内存缓存,所有这些服务器均在php的主机列表中,并且它们在前端进行了负载均衡。因此,由于应该将memcached进行分发,因此php客户端将决定向哪个节点写入键/值对,并保留一条记录,以便以后从该同一节点进行检索?

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

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

我问的原因是因为所有负载平衡的服务器都在运行它,并且如果确实将其写入池中的所有服务器,那么看来它违反了分发它的目的,因此我应该强迫php从主机中拉出在本地主机列表中。

Answers:


16

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

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


很棒的文章正是我所需要的,谢谢Sameer。我还发现这非常有帮助: code.google.com/p/memcached/wiki/NewConfiguringClient
Mike 2010年

请注意,memcache会根据密钥将数据分区到多台计算机上,这意味着将工作均匀地分布在密钥空间上可能会比较好,这样一台计算机就不会因为所有流量而浪费所有资源。
李·彭克曼
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.