惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cloudbric
Cloudbric
D
Docker
F
Fortinet All Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Recent Announcements
Recent Announcements
月光博客
月光博客
B
Blog RSS Feed
Help Net Security
Help Net Security
L
LINUX DO - 最新话题
Recorded Future
Recorded Future
Stack Overflow Blog
Stack Overflow Blog
Webroot Blog
Webroot Blog
Y
Y Combinator Blog
N
News and Events Feed by Topic
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
I
InfoQ
Microsoft Azure Blog
Microsoft Azure Blog
Microsoft Security Blog
Microsoft Security Blog
J
Java Code Geeks
美团技术团队
P
Privacy & Cybersecurity Law Blog
H
Help Net Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
酷 壳 – CoolShell
酷 壳 – CoolShell
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园 - 聂微东
Scott Helme
Scott Helme
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
The Hacker News
The Hacker News
腾讯CDC
H
Hackread – Cybersecurity News, Data Breaches, AI and More
G
GRAHAM CLULEY
S
SegmentFault 最新的问题
爱范儿
爱范儿
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
CXSECURITY Database RSS Feed - CXSecurity.com
D
DataBreaches.Net
博客园_首页
V
Vulnerabilities – Threatpost
PCI Perspectives
PCI Perspectives
S
Security @ Cisco Blogs
GbyAI
GbyAI
Schneier on Security
Schneier on Security
The Last Watchdog
The Last Watchdog
The Register - Security
The Register - Security
WordPress大学
WordPress大学
T
Tor Project blog
A
About on SuperTechFans
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org

博客园 - 草屋主人

高性能队列Fqueue的设计和使用实践 软件系统开发中的数据交换协议 MySQL与NoSQL——SQL与NoSQL的融合 NoSQL架构实践(三)——以NoSQL为缓存 NoSQL架构实践(二)——以NoSQL为主 NoSQL架构实践(一)——以NoSQL为辅 移动互联网系统架构的特点 关系数据库还是NoSQL数据库 NoSQL开篇——为什么要使用NoSQL 使用node.js快速开发透明代理 velocity大会主题演讲内容“移动互联网内容平台的架构和性能优化” InfoQ百度技术沙龙"APP Engine技术应用"主题的总结记录 用于php二进制操作和socket二进制通讯的phpbuffer v0.1开源发布 iDataForum2010数据库技术论坛总结 O'Reilly Velocity性能和运维大会以及我的演讲主题 基于视觉的系统性能优化 【译】适合dba和开发者的mysql最佳实践 如何用队列提升系统性能 基于memcached协议构建自定义协议
利用FUSE把memcached当磁盘使用
草屋主人 · 2010-12-27 · via 博客园 - 草屋主人

     [文章作者:孙立 链接:http://www.cnblogs.com/sunli/ 更新时间:2010-12-27]  

     web2.0的盛行,Memcached 用得越来越广泛。所以也越来越多的产品提供了兼容memcached协议的数据存取方式,我们自己开发的NOSQL也提供了memcached协议的支持。一直在想,是否可以把这个NOSQL直接挂载到磁盘上,这样在某些场合,使用起来就更加方便了。比如cat,vi 都可以直接查看和编辑。

     google了一下 ,有现成的工具memcachefs。所以就测试下了,写篇文章分享下。按照这里http://memcachefs.sourceforge.net/ 进行安装和使用。

# ./memcachefs 127.0.0.1:11212 ./mnt

# ls -lh ./mnt

total 0

 -rw-rw-rw- 1 root root 5 Jan  1  1970 aa

 -rw-rw-rw- 1 root root 5 Jan  1  1970 bb

      你可以通过 vi来编辑memcached的数据。然后我又测试了下挂载我们开发的NOSQL(INetDB),也成功了,只是不支持ls命令来列出文件列表,这是因为我们没有实现stats items等遍历命令。

      我通过一个php 脚本执行单线程的测试:

<?php
$start=microtime(true);
for($i=0;$i<10000;$i++){
file_put_contents("key_".$i,"abcdef");

}

echo microtime(true)-$start;
?>

写本地通过memcached挂载的磁盘耗时3.3秒,直接写本地磁盘0.4秒左右。

总结:

      1.通过memcachefs可以把支持memcached 协议的存储当成本地文件一样使用,提供了透明的支持,给不支持memcached协议的命令提供了操作的通道。比如cat ,vi。

      2.利用memcached协议,可以通过  memcachefs挂载到本地磁盘,实现一些特殊场景的应用。比如以前的老系统使用文件缓存,那么可以无缝切换到memcached,而无需更改代码

      3.通过memcached协议开发自己的分布式文件系统,主要是存储一些小文件。由于文件数据太大,所以最好去掉stats items等遍历的功能,以提高性能。

      4.变态应用场景。比如挂载数据库,挂载非存储(一些命令等等)

     注:未测试memcachefs的稳定性和性能,本文主要在提供一种思路。或许在某些时候,能提供一些方便的解决方案。