memcachedb让memcache的数据持久化

来源:互联网 发布:linux为什么是企鹅 编辑:程序博客网 时间:2024/06/01 17:03

memcachedb(http://memcachedb.org/):
memcachedb 是以 Berkeley DB 为 backend 的 memcached-compatibleserver。是新浪发布的。
它利用Memcached分布式缓存服务器添加了Berkeley DB的持久化存储机制和异步主辅复制机制
让memcached具备了事务恢复能力、持久化能力和分布式复制能力,非常适合于需要超高性能读写速度。
我们还不能说memcachedb已经是一个数据库了,这是因为memcached不支持内存对象的遍历操作,当然更加不能支持复杂的查询操作
只能支持根据已知的key去查询对应的value。
因此如果想把memcachedb当成一个高性能的分布式内存数据库来使用的话,查询的问题就没有办法解决
只能在应用程序里面配合其他方案做一些折衷。

memcachedb:也不会是绝对意义上的同时存入数据库,稍微有点时间差,比如put一个值到memcachedb中,可能会过1分钟左右时间再同步到Berkeley数据库中

一、使用场景
   要求频繁的进行查询更新、访问数据快、数据量不大,并且需要持久化到数据库中,却不需要sql查询的数据;
   比如网站的在线人数等功能
二、功能
   1、当有一个get请求到来时首先会访问当前的memcache内存数据,如果不存在,则会去后台berkeley 数据库中查询
   并把查询到的数据存到当前memcache内存,同时返回给客户端结果,当下次还有同一key的请求时就直接从内存中读取
   2、能把存储到memcache中数据实时同步到berkeley数据库中,这样即使系统down掉,重启后数据也不会丢失
    3、可以做主/重复制,提高系统性能,这样就可以根据具体应用来实现读/写分离
三、缺点
  1、不能提供类似于db的sql查询,只能基于key的查询   
  2、没有失效时间的概念,因为是存到数据库中,所以永不失效,如果需要失效的管理,可通过客户端程序进行控制
   3、不支持所有对象的遍历操作
    
三、安装启动
安装libevent
wget http://monkey.org/~provos/libevent-1.4.14b-stable.tar.gz
tar -zxvf libevent-1.4.14b-stable.tar.gz
cd libevent-1.4.14b-stable
./configure
make
make install

安装berkeley-db
wget http://download.oracle.com/berkeley-db/db-4.7.25.tar.gz
tar zxf db-4.7.25.tar.gz
cd db-4.7.25/build_unix/
../dist/configure
make
make install

#编译完成,将Berkeley Db运行库的路径添加到系统配置里面
echo "/usr/local/BerkeleyDB.4.7/lib/">> /etc/ld.so.conf
ldconfig


安装memcachedb,最新版是2008年12月份的,至今没有更新据说是已经比较稳定了。
wget http://memcachedb.googlecode.com/files/memcachedb-1.2.1-beta.tar.gz
tar zxf memcachedb-1.2.1-beta.tar.gz
cd memcachedb-1.2.1-beta
./configure
make
make install

装完了!

启动memcachedb
创建目录/www/mcdb_data
mkdir /www/mcdb_data
chmod 777 /www/mcdb_data

启动
#第一种,读写合并模式,即不做辅拷贝,即读又写,不做冗余备份
memcachedb -p21211 -d -r -u root -H /www/mcdb_data  -N

#第二种,读写分离/备份模式
#主服务器 192.168.0.1 读写监听 11211 ,同步通过31211的端口完成,不占用繁忙的主服务端口
memcachedb -p 21211 -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 -p 21212 -d -r -u root -H /data/mdb_11211_from_16801_s -O 192.168.0.1:31211 -R192.168.0.2:31212 -S

启动参数:
Replication Options:
‘-R’ identifies the host and port used by this site(required).
‘-O’ identifies another site participating in this replicationgroup
‘-M/-S’ start as a master or slave
0 0
原创粉丝点击