memcached全面剖析
如今,越来越多的Web应用程序开始使用memcached这个高速的缓存服务器软件。然而,memcached的基础知识远远未能像其他Web技术那样普及,memcached在国内的大规模应用也鲜为人知。而日本的mixi(mixi.jp)则在这方面走在了前面,不仅大规模使用memcached作为缓存来加速Web应用,而且自行开发了Tokyo Cabinit、Tokyo Tyrant等一系列相关的软件。
这是由 mixi 株式会社 开发部系统运营组的两位工程师野雅广、前坂徹所写,日常负责程序的运营。本文将针对最近在Web应用的可扩展性领域的热门话题memcached,说明其内部结构和使用。这篇连载语言简洁、通俗易懂,非常适合memcached入门的人阅读。
非常感谢charlee将其译成中文。
- 第1章:http://tech.idv2.com/2008/07/10/memcached-001/
- 第2章:http://tech.idv2.com/2008/07/11/memcached-002/
- 第3章:http://tech.idv2.com/2008/07/16/memcached-003/
- 第4章:http://tech.idv2.com/2008/07/24/memcached-004/
- 第5章:http://tech.idv2.com/2008/07/31/memcached-005/
memcached全面剖析分为五个章节、案例讲解,推荐大家阅读学习,中文版PDF文档下载地址。
第一章 memcached的基础
1.1 memcached是什么?
1.2 memcached的特征
协议简单
基于libevent的事件处理
内置内存存储方式
memcached不互相通信的分布式
1.3 安装memcached
memcached的安装
memcached的启动
1.4 用客户端连接
1.5 使用Cache::Memcached
使用Cache::Memcached连接memcached
保存数据
获取数据
删除数据
增一和减一操作
1.6 总结
第二章 理解memcached的内存存储
2.1 Slab Allocation机制:整理内存以便重复使用
Slab Allocation的主要术语
2.2 在Slab中缓存记录的原理
2.3 Slab Allocator的缺点
2.4 使用Growth Factor进行调优
2.5 查看memcached的内部状态
2.6 查看slabs的使用状况
2.7 总结
第三章 memcached的删除机制和发展方向
3.1 memcached在数据删除方面有效利用资源
数据不会真正从memcached中消失
Lazy Expiration
3.2 LRU:从缓存中有效删除数据的原理
3.3 memcached的最新发展方向
关于二进制协议
二进制协议的格式
HEADER中引人注目的地方
3.4 外部引擎支持
外部引擎支持的必要性
简单API设计的成功的关键
重新审视现在的体系
3.5 总结
第四章 memcached的分布式算法
4.1 memcached的分布式
memcached的分布式是什么意思?
4.2 Cache::Memcached的分布式方法
根据余数计算分散
根据余数计算分散的缺点
4.3 Consistent Hashing
Consistent Hashing的简单说明
支持Consistent Hashing的函数库
4.4 总结
第五章 memcached的应用和兼容程序
5.1 mixi案例研究
服务器配置和数量
memcached进程
memcached使用方法和客户端
5.2 memcached应用经验
通过daemontools启动
监视
memcached的性能
5.3 兼容应用程序
Tokyo Tyrant案例
5.4 总结
欢迎大家扫描下面二维码成为我的客户,扶你上云