一、Mem cached 1
1、m em cached 简介 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态 Web应用以减轻数据库负载
它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度
Memcached 基于一个存储键/值对的 hashmap
其守护进程(daemon )是用 C 写的,但是客户端可以用任何语言来编写,并通过 memcached 协议与守护进程通信
但是它并不提供冗余(例如,复制其 hashmap 条目);当某个服务器 S 停止运行或崩溃了,所有存放在 S 上的键/值对都将丢失
Memcached 由 Danga Interactive 开发,其最新版本发布于 2010 年,作者为Anatoly Vorobey 和 Brad Fitzpatrick
用于提升 LiveJournal
com 访问速度的
LJ 每秒动态页面访问量几千次,用户700 万
Memcached 将数据库负载大幅度降低,更好的分配资源,更快速访问
2、Mem cached 是如何工作的 Memcached 的神奇来自两阶段哈希(two-stage hash)
Memcached 就像一个巨大的、存储了很多 对的哈希表
通过 key,可以存储或查询任意的数据
客户端可以把数据存储在多台 memcached 上
当查询数据时,客户端首先参考节点列表计算出 key 的哈希值(阶段一哈希),进而选中一个节点;客户端将请求发送给选中的节点,然后 memcached 节点通过一个内部的哈希算法(阶段二哈希),查找真正的数据(item)
举个列子,假设有 3 个客户端 1, 2, 3,3 台 memcached A, B, C :Client 1 想把数据”tuletech”以 key “foo”存储
Client 1 首