2008/1/18 Jiahua Huang <jhuang...@gmail.com>:
>
> 转贴: http://blog.s135.com/read.php?320
>
>
> [ 2008-1-10 08:45 | by 张宴 ]
看了memcachedb的介绍,比较侧重于持久化,不知道可不可以再做些介绍?
以bdb作为后端,看起来似乎是个数据库呢?
2008/1/18 Jiahua Huang <jhuang...@gmail.com>:
>
> 转贴: http://blog.s135.com/read.php?320
>
>
> [ 2008-1-10 08:45 | by 张宴 ]
--
关注LAMP平台、安全、及web开发的个人blog: http://hackgou.itbbq.com
PGP KeyID: hackgou#Gmail.com
PGP KeyServ: subkeys.pgp.net
2008/1/18 清风 <paradise...@gmail.com>:
> 别赞我阿。。。。。这不是我开发的。。。。是我们公司blog的同事开发的,stvchu应该也经常在列表活动,跟大家讲讲阿:)
>
huahua@huahua:memcachedb-0.1.0$ bzr diff
=== modified file 'Makefile'
--- Makefile 2008-01-18 03:07:09 +0000
+++ Makefile 2008-01-18 03:13:08 +0000
@@ -2,11 +2,11 @@
# $Id: Makefile 11833 2007-09-06 10:56:02Z steve $
LIBS=-ldb -levent
-DBLIBPATH=/usr/local/BerkeleyDB.4.6/lib
-DBINCPATH=/usr/local/BerkeleyDB.4.6/include
+DBLIBPATH=/usr/lib
+DBINCPATH=/usr/include
-LDFLAGS= -L/usr/local/lib/ -L${DBLIBPATH}
-CFLAGS =-Wall -O2 -I/usr/local/include -I${DBINCPATH}
+LDFLAGS= -L/usr/lib/ -L${DBLIBPATH}
+CFLAGS =-Wall -O2 -I/usr/include -I${DBINCPATH}
all:
cc -o memcachedb memcachedb.c ${LDFLAGS} ${CFLAGS} ${LIBS}
=== modified file 'memcachedb.h'
--- memcachedb.h 2008-01-18 03:07:09 +0000
+++ memcachedb.h 2008-01-18 03:10:06 +0000
@@ -60,8 +60,8 @@
extern struct stats stats;
extern struct settings settings;
-#define END_LEN 32
-#define END_LEN_STR "31"
+#define END_LEN 1024000
+#define END_LEN_STR "32"
typedef struct _stritem {
int nbytes; /* size of data */
原来是国人开发的啊,太好了。前一段时间在memcache邮件列表看见的时候就很感兴趣,现在沟通更方便了 :)
我有一个问题,当服务器列表发生变化时(比如新增或者去除一台服务器),客户端对某个特定的key选择的server会发生变化,这时如何保证还能访问到之前存储的数据?memcache由于是cache,所以无所谓,miss了再去数据库select出来,但memachedb本身就是数据库啊?
--
Qiangning Hong
http://www.douban.com/people/hongqn/
Jiahua Huang 写道:
> 转贴: http://blog.s135.com/read.php?320
>
>
> [不指定 2008-1-10 08:45 | by 张宴
> <http://blog.s135.com/view.php?go=user_2> ]
> *Memcachedb*
>
> 协议:New BSD License
> <http://www.opensource.org/licenses/bsd-license.php>
> 作者:stvchu, gary.caokai, forever.sky81
> 团队:新浪互动社区事业部──博客产品
> 网址:http://code.google.com/p/memcachedb/
>
> Memcachedb = memcache + Berkeley DB
>
> Memcachedb是一款支持高并发的分布式持久存储系统,对任何原有
> memcached客户端来讲,它仍旧是个memcached,但是,它的数据是可以持久存储
> 的。
> 前端:memcached的网络层
> 后端:Berkeley DB存储
>
> 写速度:从本地服务器通过memcache客户端(libmemcache) set 2亿条16
> 字节长的key,10字节长的Value的记录,耗时16572秒,平均速度12000条记录/秒。
> 读速度:从本地服务器通过memcache客户端(libmemcache) get 100万条
> 16字节长的key,10字节长的Value的记录,耗时103秒,平均速度10000条记录/秒。
>
> • 支持的memcache命令
> get, set, add, replace
> incr, decr
> delete
> stats
> flush_all
>
> • 私有命令
> db_checkpoint, db_archive
> db_ismaster, db_whoismaster (for replication)
>
> 编译及安装方法:
> http://blog.csdn.net/simonlsy/archive/2008/01/07/2027940.aspx
>
> 点击在新窗口中浏览此图片
> <http://blog.s135.com/attachment/200801/memcachedb.jpg>
>
> >
或者,以前没看过 memcache 和 bsddb ?
2008/1/19 Eric Sheng <sheng...@gmail.com>:
> memcached 有一个很大的问题,就是万一倒掉,所有cache必须重要生成.
> 如果cache的数据量很大,那memcached重启后把后台数据库压倒是轻而易举的事情.
>
memcache 是个分布式内存缓冲系统,
标准的 memcache 客户端是简单将键值推到按算法选定的 memcached 服务器,
memcached 并不做任何复制和同步,一个键值只会在一个 memcached 服务器上。
标准的 memcached 只将键值保存在内存了,
新浪的 memcachedb 是将后端改为 bsddb 磁盘哈希
2008/1/19 Eric Sheng <sheng...@gmail.com>:
> 说实话我没读过源代码. 以上言论仅是我对这两个东西的理解.
> 我的理解不一定正确!仅作参考!
>
memcache 跟 memcachedb 是两个东西,
2008/1/19 Eric Sheng <sheng...@gmail.com>:
> 性能没啥问题,新浪自已就在用。
>
>
2008/1/22 stvchu <stv...@gmail.com>:
> memcachedb 和 memcached一样,作为一个架构组件而存在,保持 KISS原 则,数据的 partition 通过应用层来做,你可以用
> consistent hash, dht 或者用 master 存 metadata,这在你构建 memcachedb 集群的时候需要考虑。
2008/1/22 stvchu <stv...@gmail.com>:
所以可能想用 memcachedb 直接代替 memcached 做缓存,
但是原先以来 memcached 过期的程序就会不动了
2008/1/22 stvchu <stv...@gmail.com>:
> memcachedb是做存储用的,为什么要有过期时间呢?
>