memcached 是怎么工作的?
Memcached 的神奇来自两阶段哈希( two-stage hash)。 Memcached 就像一个巨大的、存储
了很多<key,value>对的哈希表。通过 key,可以存储或查询任意的数据。
客户端可以把数据存储在多台 memcached 上。当查询数据时,客户端首先参考节点列表计
算出 key 的哈希值(阶段一哈希),进而选中一个节点;客户端将请求发送给选中的节点,
然后 memcached 节点通过一个内部的哈希算法(阶段二哈希),查找真正的数据( item)。
举个列子,假设有 3 个客户端 1, 2, 3, 3 台 memcached A, B, C:
Client 1 想把数据”barbaz”以 key “foo”存储。 Client 1 首先参考节点列表( A, B, C),计算 key
“foo”的哈希值,假设 memcached B 被选中。接着, Client 1 直接 connect 到 memcached B,
通过 key “foo”把数据”barbaz”存储进去。 Client 2 使用与 Client 1 相同的客户端库(意
味着阶段一的哈希算法相同),也拥有同样的 memcached 列表&#
memcached面试专题及答案
最新推荐文章于 2024-10-30 11:26:58 发布
本文详细介绍了memcached的工作原理,包括两阶段哈希、客户端哈希选择节点以及非阻塞、事件驱动的服务器架构。讨论了memcached的水平扩展性和对比MySQL查询缓存、本地缓存(如PHP的APC)的优势和不足。同时,讲解了memcached的缓存机制,如LRU和超时失效,并提出了应对节点失效和数据导入导出的策略。强调了memcached的身份验证和多线程模式,并给出了key和item大小的限制及其理由。
摘要由CSDN通过智能技术生成