memcachedb-持久化存储的缓存系统
jopen
13年前
<p><a href="/misc/goto?guid=4959499537503143910">memcachedb</a>故名思义就是 <a href="/misc/goto?guid=4959498018552551318"><strong>memcached</strong></a><strong> + </strong><a href="/misc/goto?guid=4959499537627140961"><strong>bdb</strong></a>,是基于<a href="/misc/goto?guid=4959498018552551318">memcached</a> Socket层和<a href="/misc/goto?guid=4959499537627140961">berkeley-db</a>存储层结构的实现, 是新浪互动社区技术团队2007年的一项重大的技术成果,现在应用于新浪互动社区多个产品线中,其中包括新浪博客等重头产品。能够实现任意memcache api的调用、数据实时落地以及主辅实时备份。</p> <p><strong>选择memcachedb:</strong>没 有什么特殊的原因,我们有最好的理由就是,在做到最大不牺牲数据读、写性能的前提下,我们能够让您原来存储在memcache里的数据不再遭受系统宕机或 者系统掉电而丢失,即使服务器电源爆炸了,只要硬盘还能够正常工作,换到另外一台服务器上,您的数据依然安然无恙地在硬盘上。</p> <p><strong>性能:</strong>我们做过小数据测试,小数据(几十个字节)数据的读写,每秒钟并发能够维持在5000+(单块146Scis硬盘,CPU和内存配置几乎可以忽略因为这不是性能瓶颈)。基本上满足所有互联网高效存储的应用。</p> <p><strong>应用场合:</strong>需 要频繁读写的小数据。例如数字类服务就像点击数,需要频繁写入小数据的例如评论系统,需要记录用户状态的例如在线人数以及在线用户等等。当然,如果您想用 来存储单笔超过10K以上的数据,例如新闻或者文章或者论坛帖子也可以,但是我们没有尝试过,如果您真的用来这样子玩了,可以反馈给我。</p> <p><strong>数据备份&&读写分离:</strong>memcachedb支持主辅实时无差异同步,配置主服务和辅服务仅仅需要很短的一条启动命令。当然,您也可以利用这一便利特性来实现读写分离,那样子会让您的系统更加的高效。</p> <p><strong>稳定性:</strong>memcachedb目前被应用于新浪互动社区多个产品线中,具有钢铁般的品质。</p> <p><strong>缺点:</strong>memcached不支持内存对象的遍历操作,当然更加不能支持复杂的查询操作,只能支持根据已知的key去查询对应的value。但后续我会介绍另外一个东东memcache_engine,它为mysql提供了一个memcached引擎。</p> <p>一、安装<br /> 直接在memcached-1.2.2.tar.gz找到INSTALL文件,按照步骤安装就行了。很简单。</p> <p>二、启动<br /> #第一种,读写合并模式,即不做辅拷贝,即读又写,不做冗余备份<br /> <strong>memcachedb -p21211 -d -r -u root -H /data/mdb_11211 -N</strong></p> <p>#第二种,读写分离/备份模式<br /> #主服务器 192.168.0.1 读写监听 11211 ,同步通过31211的端口完成,不占用繁忙的主服务端口<br /> <strong>memcachedb -p21211 -d -r -u root -H /data/mdb_11211_m -N -R 127.0.0.1:31211 -M</strong></p> <p># 辅服务器 192.168.0.2 只读监听 21212,从192.168.0.1 的 31211端口同步数据,同时再开一个31212端口对外提供数据同步服务<br /> <strong>memcachedb -p21212 -d -r -u root -H /data/mdb_11211_from_16801_s -O 192.168.0.1:31211 -R 192.168.0.2:31212 -S</strong></p>