一:选择memcachedb的原因 为什么要选择memcachedb:没有什么特殊的原因,我们有最好的理由就是,在做到最大不牺牲数据读、写性能的前提下,我们能够让您原来存储在memcache里的数据不再遭受系统宕机或者系统掉电而丢失,即使服务器电源爆炸了,只要硬盘还能够正常工作,换到另外一台服务器上,您的数据依然安然无恙地在硬盘上。 性能的担忧:我们做过小数据测试,小数据(几十个字节)数据的读写,每秒钟并发能够维持在5000+(单块146Scis硬盘,CPU和内存配置几乎可以忽略因为这不是性能瓶颈)。基本上满足所有互联网高效存储的应用。 应用场合:需要频繁读写的小数据。例如数字类服务就像点击数,需要频繁写入小数据的例如评论系统,需要记录用户状态的例如在线人数以及在线用户等等。当然,如果您想用来存储单笔超过10K以上的数据,例如新闻或者文章或者论坛帖子也可以,但是我们没有尝试过,如果您真的用来这样子玩了,可以反馈给我们。 数据备份&&读写分离:memcachedb支持主辅实时无差异同步,配置主服务和辅服务仅仅需要很短的一条启动命令。当然,您也可以利用这一便利特性来实现读写分离,那样子会让您的系统更加的高效。 稳定性:memcachedb目前被应用于新浪互动社区多个产品线中,具有钢铁般的品质,Sina出品,品质毋庸置疑。 二:编译及安装 memcachedb跟memcache一样,网络socket数据处理依赖于libevent,所以,在安装之前需要下载三个安装包,即libevent、Berkeley Db以及memcachedb。 Libevent 下载页面:http://monkey.org/~provos/libevent/ ,下载最新稳定版本就行。 Berkeley Db下载页面:http://www.oracle.com/technology/software/products/berkeley-db/index.html 需要安装4.6版本 memcachedb下载页面:http://code.google.com/p/memcachedb/ 下载最新版本 0.1.0版本 按照顺序安装,Libevent和Berkeley Db按照常规安装即可,这里以Linux 环境为标准。
复制代码代码如下:
[======Libevent=====]
[======Berkeley Db=====]
#需要进入特定操作系统编译环境,更常规软件的编译有些区别
#然后才能够开始编译
#如果没有指定特殊安装路径,编译完成,需要将Berkeley Db运行库的路径添加到系统配置里面
#重载系统Ld运行库
#如果您要存储的内容的键值的长度和单笔内容的长度有变化,您需要更改一个文件 memcachedb.h
复制代码代码如下:
#define END_LEN 32 ----> 这是是 Key+Value 的最大长度
#默认key键值只预留了31个字节的长度,单笔数据最长是32个字节数。
#define END_LEN 102400 ----> 这是是 Key+Value 的最大长度
#修改完之后,直接make就行
#编译完之后,将生成可执行memcachedb拷贝到 /usr/sbin/
复制代码代码如下:
cp -f memcachedb /usr/sbin/
#启动 memcachedb
复制代码代码如下:
memcachedb -p21211 -d -r -u root -H /data/mdb_11211 -N
#第二种,读写分离/备份模式
复制代码代码如下:
memcachedb -p21211 -d -r -u root -H /data/mdb_11211_m -N -R 127.0.0.1:31211 -M
# 辅服务器 192.168.0.2 只读监听 21212,从192.168.0.1 的 31211端口同步数据,同时再开一个31212端口对外提供数据同步服务
复制代码代码如下:
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
另注: MemcacheDB的前端缓存是Memcached,前端:memcached的网络层,后端:BerkeleyDB存储。 (责任编辑:IT) |