首页 > 资料专栏 > HRM > 人力资源 > 面试甄选 > memcached面试专题PDF

memcached面试专题PDF

shishij***
V 实名认证
内容提供者
热门搜索
面试
资料大小:201KB(压缩后)
文档格式:PDF(6页)
资料语言:中文版/英文版/日文版
解压密码:m448
更新时间:2024/11/10(发布于浙江)

类型:积分资料
积分:10分 (VIP无积分限制)
推荐:升级会员

   点此下载 ==>> 点击下载文档


“memcached面试专题PDF”第1页图片 图片预览结束,如需查阅完整内容,请下载文档!
文本描述
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列表(A, B, C)。 于是,经过相同的哈希计算(阶段一),Client 2计算出 key “foo”在 memcached B上,然后 它直接请求 memcached B,得到数据”barbaz”。 各种客户端在 memcached中数据的存储形式是不同的(perl Storable, php serialize, java hibernate, JSON等)。一些客户端实现的哈希算法也不一样。但是,memcached服务器端的 行为总是一致的。 最后,从实现的角度看,memcached是一个非阻塞的、基于事件的服务器程序。这种架构 可以很好地解决 C10K problem,并具有极佳的可扩展性。 可以参考 A Story of Caching,这篇文章简单解释了客户端与 memcached是如何交互的。 memcached最大的优势是什么? 请仔细阅读上面的问题(即 memcached是如何工作的)。Memcached最大的好处就是它带 来了极佳的水平可扩展性,特别是在一个巨大的系统中。由于客户端自己做了一次哈希, 那么我们很容易增加大量 memcached到集群中。memcached之间没有相互通信,因此不 会增加 memcached的负载;没有多播协议,不会网络通信量爆炸(implode)。memcached 的集群很好用。内存不够了?增加几台 memcached吧;CPU不够用了?再增加几台吧; 有多余的内存?在增加几台吧,不要浪费了。 基于 memcached的基本原则,可以相当轻松地构建出不同类型的缓存架构。除了这篇 FAQ,在其他地方很容易找到详细资料的。 看看下面的几个问题吧,它们在 memcached、服务器的 local cache之间做了比较。这几个问题会让您有更全面的认识。 cache和 MySQL的 query memcached和 MySQL的 query cache相比,有什么优缺点? 把 memcached引入应用中,还是需要不少工作量的。MySQL有个使用方便的 query cache,可以自动地缓存 SQL查询的结果,被缓存的 SQL查询可以被反复地快速执行。 Memcached与之相比,怎么样呢?MySQL的 query cache的 MySQL服务器都会受益。 cache是集中式的,连接到该 quer