首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

配备Memcache服务器并实现主从复制功能

2013-08-06 
配置Memcache服务器并实现主从复制功能一、Linux下Memcache服务器端的安装Memcache用到了libevent这个库用

配置Memcache服务器并实现主从复制功能
一、Linux下Memcache服务器端的安装Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent.用wget指令直接下载这两个东西.下载回源文件后。
1.先安装libevent。这个东西在配置时需要指定一个安装路径,即./configure?–prefix=/usr/local;然后make;然后make?install;
2.再安装memcached,只是需要在配置时需要指定libevent的安装路径即./configure?–with-libevent=/usr/local;然后make;然后make?install;
这样就完成了Linux下Memcache服务器端的安装。详细的方法如下:
1.分别把memcached和libevent下载回来:
#?cd?/usr/local/src/tarbag
#?wget?http://www.danga.com/memcached/dist/memcached-1.4.0.tar.gz
#?wget?http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz2.先安装libevent:
#?tar?zxvf?libevent-1.4.13-stable.tar.gz?-C?../software
#?cd?../software/libevent-1.4.13-stable
#?./configure?–prefix=/usr/local
#?make
#?make?install
3.测试libevent是否安装成功:
#?ls?-al?/usr/local/lib?|?grep?libevent
lrwxrwxrwx?1?root?root?21?11???12?17:38?libevent-1.2.so.1?->?libevent-1.2.so.1.0.3
-rwxr-xr-x?1?root?root?263546?11???12?17:38?libevent-1.2.so.1.0.3
-rw-r–r–?1?root?root?454156?11???12?17:38?libevent.a
-rwxr-xr-x?1?root?root?811?11???12?17:38?libevent.la
lrwxrwxrwx?1?root?root?21?11???12?17:38?libevent.so?->?libevent-1.2.so.1.0.3
还行,都安装上了。4.安装memcached,同时需要安装中指定libevent的安装位置:
#?cd?/usr/local/src/tarbag
#?tar?zxvf?memcached-1.4.0.tar.gz?-C?../software
#?cd?memcached-1.4.0
#?./configure?–with-libevent=/usr/local
#?make
#?make?install
如果中间出现报错,请仔细检查错误信息,按照错误信息来配置或者增加相应的库或者路径。
安装完成后会把memcached放到?/usr/local/bin/memcached?,5.测试是否成功安装memcached:
#?ls?-al?/usr/local/bin/mem*
-rwxr-xr-x?1?root?root?137986?11???12?17:39?/usr/local/bin/memcached
-rwxr-xr-x?1?root?root?140179?11???12?17:39?/usr/local/bin/memcached-debug?安装Memcache的PHP扩展(如果是JAVA程序则不需要此步)
1.在http://pecl.php.net/package/memcache?选择相应想要下载的memcache版本。
2.安装PHP的memcache扩展wget?http://pecl.php.net/get/memcache-2.2.5.tgztar?vxzf?memcache-2.2.5.tgz?-C?../software
cd?../software/memcache-2.2.5
/usr/local/php/bin/phpize
./configure?-enable-memcache?-with-php-config=/usr/local/php/bin/php-config?-with-zlib-dir
make
make?install3.上述安装完后会有类似这样的提示:Installing?shared?extensions:?/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/4.把php.ini中的extension_dir?=?“./”修改为extension_dir?=?"/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/"5.添加一行来载入memcache扩展:extension=memcache.so?memcached的基本设置:
1.启动Memcache的服务器端:
#?/usr/local/bin/memcached?-d?-m?10?-u?root?-l?192.168.50.240?-p?12000?-c?256?-P?/tmp/memcached.pid-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.50.240
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在?/tmp/memcached.pid,2.如果要结束Memcache进程,执行:#?kill?`cat?/tmp/memcached.pid`也可以启动多个守护进程,不过端口不能重复。3.重启apache,/sbin/apachectl?restart?Memcache环境测试:
运行下面的php文件,如果有输出This?is?a?test!,就表示环境搭建成功。开始领略Memcache的魅力把!
<?php$mem?=?new?Memcache;$mem->connect("192.168.50.240",?12000);$mem->set('key',?'This?is?a?test!',?0,?60);$val?=?$mem->get('key');echo?$val;?>?二、repcached实现memcached的复制功能repcached是日本人开发的实现memcached复制功能,它是一个单?master单?slave的方案,但它的?master/slave都是可读写的,而且可以相互同步,如果?master坏掉,?slave侦测到连接断了,它会自动?listen而成为?master;而如果?slave坏掉,?master也会侦测到连接断,它就会重新?listen等待新的?slave加入安装:?先安装memcached(我安装的1.2.8)?有两种方式:方式一、下载对应的repcached版本#wget?http://downloads.sourceforge.net/repcached/memcached-1.2.8-repcached-2.2.tar.gz#tar?zxf?memcached-1.2.8-repcached-2.2.tar.gz#cd?memcached-1.2.8-repcached-2.2方式二、下载对应patch版本#wget?http://downloads.sourceforge.net/repcached/repcached-2.2-1.2.8.patch.gz#gzip?-cd?../repcached-2.2-1.2.8.patch.gz?|?patch?-p1?#./configure?--enable-replication#?make#?make?install?启动:
启动master
#memcached?-v?-l?192.168.50.240?-p?11211?-uroot
replication:?listen?(master监听)启动salve
#memcached?-v?-l?192.168.50.241?-p?11213?-uroot?-x?127.0.0.1?-X?11212
replication:?connect?(peer=192.168.50.240:11212)
replication:?marugoto?copying
replication:?start启动正常后,master将accept。测试:
操作master
#telnet?192.168.50.240?11211
#set?key1?0?0?3
111查看slave
#telnet?192.168.50.241?11213
#get?key1如果正常表示,配置成功应用:
可以实现cache冗余注意:如果master?down机,slave接管并成为master,这时down机的master只能启用slave,他们之间互换角色,才能保持复制功能。换句话说,master没有抢占功能。

热点排行