linux安装memcachedb服务【转】
memcached是一个不错的分布式内存缓存系统,并且提供丰富的客户端api,有perl,php,java的等等等等。。。
要编译安装memcached,你的系统得先安装libevent,libevent的下载地址是:http://monkey.org/~provos/libevent/
我下载的版本是:
libevent-1.4.9-stable.tar.gz
memcached-1.2.6.tar.gz
先来编译libevent,
?View Code BASH1
./configure --prefix=/usr/local/libevent && make && make install
?
好了,现在来搞memcached
?View Code BASH1234
./configure --prefix=/usr/local/memcached-1.2.6 --with-libevent=/usr/local/libeventmake && make installln -s /usr/local/memcached-1.2.6 /usr/local/memcachedln -s /usr/local/libevent/lib/libevent-1.4.so.2 /usr/lib
下面来安装php对于memcached的扩展
从这里下载: pecl.php.net/package/memcache
我下载的版本是:3.0.4 beta版本,如果是用在生产上,还是建议下载稳定版本。
解压缩后进入目录,执行如下命令:
1234
/usr/local/php/bin/phpize./configure --prefix=/usr/local/memcached_phpclient3.0.4 --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir=/usr/local/zlib/makemake install
安装完成后,会显示: Installing shared extensions: /usr/local/php-5.2.8//lib/php/extensions/no-debug-non-zts-20060613/
接下来修改php.ini
首先找到extension_dir,默认的应该是:extension_dir = “./”
现在修改成:extension_dir = “/usr/local/php-5.2.8//lib/php/extensions/no-debug-non-zts-20060613/”
然后再找到Dynamic Extensions,在下面加上:
extension=memcache.so
然后重启apache,编写一个phpinfo()的网页,你会看到如下内容,好了,这就是说memcached的php client咱们已经安装成功了。
memcache
memcache support enabled
Version 3.0.4
Revision $Revision: 1.83.2.36 $
至于怎么用,我会在后面来给出示例,要是您等不及也可以去google上搜索去,一搜哎呀妈呀一大堆啊,下面给出几个可以参考的网址:
www.danga.com/memcached/
code.google.com/p/memcached/wiki/Clients
www.ccvita.com/257.html
cn2.php.net/manual/en/memcache.installation.php
好了,还没完呢,咱们接着来启动memcached的server端吧。
其实启动memcached和启动mysql的脚本有些大同小异的意思,都是加上什么端口儿啊,用户啊什么的一大堆的零七八碎儿的参数呗。。。
1
/usr/local/memcached/bin/memcached -d -m 10 -u root -l 192.168.0.12 -p 12000 -c 256 -P /tmp/memcached.pid
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.12,
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,
2.如果要结束Memcache进程,执行:
?View Code BASH1
kill `cat /tmp/memcached.pid`
也可以启动多个守护进程,不过端口不能重复。
现在再来telnet 192.168.0.12 12000 看看可以telnet上去了吧。。。嘿嘿。。。
成了,差不多就这么着了。。。
现在可以在应用中将一部分数据保存在内存中了,但是如果是服务器突然宕机了,或者是说服务不知怎么的就抽了疯似的终止了,那么保存在memcached中的数据还在么?
废tm话啊,肯定tmd不在了。。。
那怎么办?所以memcachedb出来了,这个是由新浪的研发团队贡献的开源项目,且听下回tmd分解。。。
紧接前一篇:linux安装memcached服务
—– memcachedb 的分割线 —–
memcachedb 的介绍可以看这里:http://memcachedb.org/
我下载的版本是:memcachedb-1.2.1-beta.tar.gz
memcachedb的安装需要libevent,Berkeley Db,memcachedb这三个dd,
libevent这个就不多说了,如果不知道怎么安装看这里有介绍libevent的安装
?
好了,现在从http://www.oracle.com/technology/software/products/berkeley-db/index.html 来下载,
我下载的版本是:db-4.7.25.tar.gz
解压缩并进行编译安装:
1234
cd db-4.7.25/build_unix/../dist/configuremakemake install
然后db就被安装到了:/usr/local/BerkeleyDB.4.7/
编辑 /etc/ld.so.conf 添加
/usr/local/BerkeleyDB.4.7/lib
然后执行:
?View Code BASH1
ldconfig
好了,前菜ok了,现在开始安装memcachedb了。。。
还是先得解压缩。。。这不废话么。。。
123
./configure --prefix=/usr/local/memcachedb-1.2.1 --with-libevent=/usr/local/libevent --enable-threadsmake && make installln -s /usr/local/memcachedb-1.2.1 /usr/local/memcachedb
好啦。。。接下来就该启动memcachedb啦。。。
主程序在:/usr/local/memcachedb/bin/memcachedb
第一种,读写合并模式,即不做辅拷贝,即读又写,不做冗余备份
?View Code BASH12
/usr/local/memcachedb/bin/memcachedb -p21211 -d -r -u root -H /server/mdb_11211 -N-H 参数是制定DB数据文件存放的位置
第二种,读写分离/备份模式
#主服务器 192.168.0.1 读写监听 11211 ,同步通过31211的端口完成,不占用繁忙的主服务端口
1
/usr/local/memcachedb/bin/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端口对外提供数据同步服务
?View Code BASH1
/usr/local/memcachedb/bin/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
好了。。。现在就OK了。。。至于测试程序,忽略了。。。
可以参考的链接:
blog.csdn.net/simonlsy/archive/2008/01/07/2027940.aspx
www.tbqu.com/post/182.html