教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

memcached是怎么工作的?

更新时间:2020年07月09日13时45分 来源:传智播客 浏览次数:

问题:memcached是怎么工作的?

答:

Memcached的神奇来自两阶段哈希(two-stagehash)。Memcached就像一个巨大的、存储了很多<key,value>对的哈希表。通过key,可以存储或查询任意的数据。
客户端可以把数据存储在多台memcached上。当查询数据时,客户端首先参考节点列表计算出key的哈希值(阶段一哈希),进而选中一个节点;客户端将请求发送给选中的节点,然后memcached节点通过一个内部的哈希算法(阶段二哈希),查找真正的数据(item)。
举个列子,假设有3个客服端1 23台memcached A,B,C
Client 1想把数据"barbaz"以key“foo”存储。Client 1首先参考节点列表(A, B, C)计算key“foo”的哈希值, 假设memcached B被选中。接着,Client 1直接connect到memcached B通过key“oo”把数据"barbaz”存储进去。Client 2使用与Client 1相同的客户端库(意味着阶段一的哈希算法相同),也拥有同样的memcached列表(A, B, C)
于是,经过相同的哈希计算(阶段一),Client 2计算出key“foo”在memcachedB上,然后它直接请求memcached B,得到数据"barbaz"。各种客户端在memcached中数据的存储形式是不同的(perl Storable php serialize,java hibernate,JSON等)。一些客户端实现的哈希算法也不一样。但是,memcached服务器端的行为总是一致的。
最后,从实现的角度看,memcached 是一个非阻塞的、基于事件的服务器程序。这种架构可以很好地解决C10K  problem,并具有极佳的可扩展性。




下面是传智教育公开的几套Java课程,您可以下载和在线观看学习,如果想深入学习java并想找到不错的java开发相关工作,建议报班学习传智教育Java高级软件工程师课程获取【Java视频教程+资料】加播妞1605146928606_课程资料.jpg:435946716。



0 分享到:
和我们在线交谈!