本文举例源代码或素材下载
我是Mixi
![](/icons/98537de.gif)
长野
![](/icons/98537dou2.gif)
memcached
![](/icons/98537de.gif)
连载终于要结束了
![](/icons/98537dou2.gif)
到上次为止
![](/icons/98537dou.gif)
我们介绍了和memcached直接相关
![](/icons/98537de.gif)
话题
![](/icons/98537dou.gif)
本次介绍
![](/icons/98537yi.gif)
些mixi
![](/icons/98537de.gif)
案例和实际应用上
![](/icons/98537de.gif)
话题
![](/icons/98537dou.gif)
并介绍
![](/icons/98537yi.gif)
些和memcached兼容
![](/icons/98537de.gif)
![](/icons/98537chengxu.gif)
mixi案例研究 mixi在提供服务
![](/icons/98537de.gif)
初期阶段就使用了memcached
![](/icons/98537dou2.gif)
随着网站WebSite访问量
![](/icons/98537de.gif)
急剧增加
![](/icons/98537dou.gif)
单纯为数据库添加slave已无法满足需要
![](/icons/98537dou.gif)
因此引入了memcached
![](/icons/98537dou2.gif)
此外
![](/icons/98537dou.gif)
我们也从增加可扩展性
![](/icons/98537de.gif)
方面进行了验证
![](/icons/98537dou.gif)
证明了memcached
![](/icons/98537de.gif)
速度和稳定性都能满足需要
![](/icons/98537dou2.gif)
现在
![](/icons/98537dou.gif)
memcached已成为mixi服务中非常重要
![](/icons/98537de.gif)
组成部分
![](/icons/98537dou2.gif)
![](http://www.crazycoder.cn/WebFiles/20091/a8b1858d-8de7-47b1-b09e-bc4300bf3812.png)
图5 CPU利用率
可见
![](/icons/98537dou.gif)
仍然有idle
![](/icons/98537de.gif)
部分
![](/icons/98537dou2.gif)
因此
![](/icons/98537dou.gif)
memcached
![](/icons/98537de.gif)
性能非常高
![](/icons/98537dou.gif)
可以作为Web应用
![](/icons/98537chengxu.gif)
开发者放心地保存临时数据或缓存Cache数据
![](/icons/98537de.gif)
地方
![](/icons/98537dou2.gif)
兼容应用
![](/icons/98537chengxu.gif)
memcached
![](/icons/98537de.gif)
实现和协议都十分简单
![](/icons/98537dou.gif)
因此有很多和memcached兼容
![](/icons/98537de.gif)
实现
![](/icons/98537dou2.gif)
![](/icons/98537yi.gif)
些功能强大
![](/icons/98537de.gif)
扩展可以将memcached
![](/icons/98537de.gif)
内存数据写到磁盘上
![](/icons/98537dou.gif)
实现数据
![](/icons/98537de.gif)
持久性和冗余
![](/icons/98537dou2.gif)
连载第3次 介绍过
![](/icons/98537dou.gif)
以后
![](/icons/98537de.gif)
memcached
![](/icons/98537de.gif)
存储层将变成可扩展
![](/icons/98537de.gif)
(pluggable)
![](/icons/98537dou.gif)
逐渐支持这些功能
![](/icons/98537dou2.gif)
这里介绍几个和memcached兼容
![](/icons/98537de.gif)
应用
![](/icons/98537chengxu.gif)
![](/icons/98537dou2.gif)
repcached 为memcached提供复制(replication)功能
![](/icons/98537de.gif)
patch
![](/icons/98537dou2.gif)
Flared 存储到QDBM
![](/icons/98537dou2.gif)
同时实现了异步复制和fail over等功能
![](/icons/98537dou2.gif)
memcachedb 存储到BerkleyDB
![](/icons/98537dou2.gif)
还实现了message queue
![](/icons/98537dou2.gif)
Tokyo Tyrant 将数据存储到Tokyo Cabinet
![](/icons/98537dou2.gif)
不仅和memcached协议兼容
![](/icons/98537dou.gif)
还能通过HTTP进行访问
![](/icons/98537dou2.gif)
Tokyo Tyrant案例 mixi使用了上述兼容应用
![](/icons/98537chengxu.gif)
中
![](/icons/98537de.gif)
Tokyo Tyrant
![](/icons/98537dou2.gif)
Tokyo Tyrant是平林开发
![](/icons/98537de.gif)
Tokyo Cabinet DBM
![](/icons/98537de.gif)
网络接口
![](/icons/98537dou2.gif)
它有自己
![](/icons/98537de.gif)
协议
![](/icons/98537dou.gif)
但也拥有memcached兼容协议
![](/icons/98537dou.gif)
也可以通过HTTP进行数据交换
![](/icons/98537dou2.gif)
Tokyo Cabinet虽然是
![](/icons/98537yi.gif)
种将数据写到磁盘
![](/icons/98537de.gif)
实现
![](/icons/98537dou.gif)
但速度相当快
![](/icons/98537dou2.gif)
mixi并没有将Tokyo Tyrant作为缓存Cache服务器
![](/icons/98537dou.gif)
而是将它作为保存键值对组合
![](/icons/98537de.gif)
DBMS来使用
![](/icons/98537dou2.gif)
主要作为存储用户上次访问时间
![](/icons/98537de.gif)
数据库来使用
![](/icons/98537dou2.gif)
它和几乎所有
![](/icons/98537de.gif)
mixi服务都有关
![](/icons/98537dou.gif)
每次用户访问页面时都要更新数据
![](/icons/98537dou.gif)
因此负荷相当高
![](/icons/98537dou2.gif)
MySQL
![](/icons/98537de.gif)
处理十分笨重
![](/icons/98537dou.gif)
单独使用memcached保存数据又有可能会丢失数据
![](/icons/98537dou.gif)
所以引入了Tokyo Tyrant
![](/icons/98537dou2.gif)
但无需重新开发客户端
![](/icons/98537dou.gif)
只需原封不动地使用Cache::Memcached::Fast即可
![](/icons/98537dou.gif)
这也是优点的
![](/icons/98537yi.gif)
![](/icons/98537dou2.gif)
有关Tokyo Tyrant
![](/icons/98537de.gif)
详细信息
![](/icons/98537dou.gif)
请参考本公司
![](/icons/98537de.gif)
开发blog
![](/icons/98537dou2.gif)
mixi Engineers' Blog - Tokyo Tyrantによる耐高負荷DBの構築
mixi Engineers' Blog - Tokyo (Cabinet|Tyrant)の新機能
整理总结 到本次为止
![](/icons/98537dou.gif)
“memcached全面剖析”系列就结束了
![](/icons/98537dou2.gif)
我们介绍了memcached
![](/icons/98537de.gif)
基础、内部结构、分散算法和应用等内容
![](/icons/98537dou2.gif)
读完后如果您能对memcached产生兴趣
![](/icons/98537dou.gif)
就是我们
![](/icons/98537de.gif)
荣幸
![](/icons/98537dou2.gif)
有关mixi
![](/icons/98537de.gif)
系统、应用方面
![](/icons/98537de.gif)
信息
![](/icons/98537dou.gif)
请参考本公司
![](/icons/98537de.gif)
开发blog
![](/icons/98537dou2.gif)
感谢您
![](/icons/98537de.gif)
阅读
![](/icons/98537dou2.gif)
为了方便阅读
![](/icons/98537dou.gif)
现将原来
![](/icons/98537de.gif)
翻译结果打包成PDF文档
![](/icons/98537dou.gif)
可以下载
![](/icons/98537dou2.gif)
作者:长野雅广(Masahiro Nagano)
原文链接:http://gihyo.jp/dev/feature/01/memcached/0005
延伸阅读
最新评论