我正在研究将MemCached用于我正在开发的Web应用程序,在过去几天研究MemCached之后,我遇到了一个我无法找到答案的问题.
如何将Memcached服务器链接在一起或如何在MemCached服务器之间复制数据?
另外:这个功能是由服务器还是客户端控制的,如何?
当您设置多个服务器时,客户端库使用第一个哈希来选择存储每个密钥/数据对的位置.这意味着没有复制,并且每个客户端都必须使用同一组服务器.
优点:
几乎零开销,存储和带宽线性增长.
服务器代码保持简单可靠.
缺点:
服务器集中的任何更改(一个发生故障,或者您添加一个新服务器)突然使(几乎)整个缓存失效.
你必须确保在每个客户端上使用相同的算法.
如果您可以控制客户端的代码,则只需在两台服务器上存储两次密钥/数据对.在从不同的客户端阅读时,请确保搜索相同的位置.
我已经使用了BeITMemcached,你可以创建一个MemcacheClient实例并设置你想要使用的服务器,就像字符串一样.
此时,客户端自己确定可用于将不同项目放入哪些服务器.你永远不知道一个项目将在哪个.
检查这里看服务器如何处理故障转移.
最简单的事情是拥有一个重新填充机制.在我的例子中,我在memcache中存储了几百个来自数据库的对象.我可以称之为重新填充并将它们全部放回原处.每当我向数据库添加,更新或删除它们时,我都会对memcache进行相同的调用.