设为首页收藏本站

就爱编程论坛

 找回密码
 注册

人人连接登陆

无需注册,直接登录

用新浪微博连接

一步搞定

QQ登录

只需一步,快速开始

查看: 714|回复: 0
打印 上一主题 下一主题

memcachedb介绍、编译以及安装 [复制链接]

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    无聊
    2025-5-27 03:37:20
  • 签到天数: 366 天

    [LV.9]以坛为家II

    论坛先锋 学习至圣 荣誉成员 论坛元老 活跃之星 终极领袖

    我玩的应用:

    跳转到指定楼层
    楼主
    发表于 2012-3-30 21:47:46 |只看该作者 |倒序浏览
    故名思义就是 memcached + bdb,是基于memcached Socket层和berkeley-db存储层结构的实现, 是新浪互动社区技术团队2007年的一项重大的技术成果,现在应用于新浪互动社区多个产品线中,其中包括新浪博客等重头产品。能够实现任意memcache api的调用、数据实时落地以及主辅实时备份。
    协议:New BSD License
    作者:stvchu, gary.caokai, forever.sky81
    团队:新浪互动社区事业部──博客产品
    项目主页:http://memcachedb.org/
    为什么选择memcached
    为什么要选择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=====]
    tar -zxvf libevent-1.3e.tar.gz
    cd libevent-1.3e
    ./configure
    make && make install
    [======Berkeley Db=====]
    tar -zxvf db-4.6.19.tar.gz
    #需要进入特定操作系统编译环境,更常规软件的编译有些区别
    cd db-4.6.19/build_unix/
    #然后才能够开始编译
      ../dist/configure
    make && make install
    #如果没有指定特殊安装路径,编译完成,需要将Berkeley Db运行库的路径添加到系统配置里面
    echo "/usr/local/BerkeleyDB.4.6/lib/" >> /etc/ld.so.conf
    #重载系统Ld运行库
    ldconfig
    [======Memcachedb=====]
    tar -zxvf memcachedb-0.1.0.tar.gz
    cd memcachedb-0.1.0
    #如果您要存储的内容的键值的长度和单笔内容的长度有变化,您需要更改一个文件 memcachedb.h
    vim memcachedb.h
    ////////////////////////////////////////////////////////////
    #define END_LEN 32               ----> 这是是 Key+Value 的最大长度
    #define END_LEN_STR "31"   ---> 这是是 key 的最大长度
    /////////////////////////////////////////////////////////
    #默认key键值只预留了31个字节的长度,单笔数据最长是32个字节数。
    #例如您如果需要用这个玩艺来存储文本内容数据,假设您的键值是一个32个字节的md5,单笔数据允许最长10K,那您可以设定
    ////////////////////////////////////////////////////////////
    #define END_LEN 102400               ----> 这是是 Key+Value 的最大长度
    #define END_LEN_STR "32"   ---> 这是是key的最大长度
    /////////////////////////////////////////////////////////
    #修改完之后,直接make就行
    make
    #编译完之后,将生成可执行memcachedb拷贝到 /usr/sbin/
    cp -f memcachedb  /usr/sbin/
    #启动 memcachedb
    #第一种,读写合并模式,即不做辅拷贝,即读又写,不做冗余备份
    memcachedb -p21211 -d -r -u root -H  /data/mdb_11211  -N
    #第二种,读写分离/备份模式
    #主服务器 192.168.0.1 读写监听 11211 ,同步通过31211的端口完成,不占用繁忙的主服务端口
    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



    该贴已经同步到 admin的微博
    分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    分享分享0 收藏收藏0 支持支持0 反对反对0 分享到人人 转发到微博
    [img=http://mail.qq.com/cgi-bin/qm_share?t=qm_mailme&email=fRUcHhYWGAQ9GxIFEBwUEVMeEhA]http://rescdn.qqmail.com/zh_CN/htmledition/images/function/qm_open/ico_mailme_02.png[/img]

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册 人人连接登陆

    晴云孤魂's Blog|就爱编程搜帖|手机版|Archiver|就爱编程论坛     

    GMT+8, 2025-7-3 13:40 , Processed in 0.100809 second(s), 27 queries .

    Powered by Discuz! X2

    © 2001-2011 Comsenz Inc.

    回顶部