Memcached+magent集群安装及错误处理
2017-03-15 17:26
351 查看
准备
资料准备:libevent下载:http://download.csdn.net/detail/webben/9782162
memcached下载:http://memcached.org/files/memcached-1.4.35.tar.gz
magent官网:http://code.google.com/p/memagent/
Google下载(墙):http://memagent.googlecode.com/files/magent-0.6.tar.gz
magent下载:http://download.csdn.net/detail/webben/9782076
(0.6 在2017年03月已经是最新版本)
安装
cd /usr/local/src tar -zxvf libevent-2.1.8-stable.tar.gz cd libevent-2.1.8-stable ./configure --prefix=/usr/local/libevent make && make install
wget http://memcached.org/files/memcached-1.4.35.tar.gz tar zxvf memcached-1.4.35.tar.gz cd memcached-1.4.35 ./configure --prefix /usr/local/memcached --with-libevent=/usr/local/libevent/ make && make install
mkdir -p /usr/local/magent tar -zxvf magent-0.6.tar.gz
vim Makefile #找到 LIBS = /usr/lib64/libevent.a /usr/lib64/libm.a #替换为libevent安装目录lib LIBS = /usr/local/libevent/lib/libevent.a /usr/lib64/libm.a #找到 CFLAGS = -Wall -g -O2 -I/usr/local/include $(M64) #替换为libevent安装目录include CFLAGS = -lrt -Wall -g -O2 -I/usr/local/libevent/include $(M64) vim ketama.h #在开头加入 #ifndef SSIZE_MAX #define SSIZE_MAX 32767 #endif
#报错 gcc -Wall -g -O2 -I/usr/local/libevent/include/ -m64 -o magent magent.o ketama.o /usr/local/libevent/lib/libevent.a /usr/lib64/libm.a /usr/local/libevent/lib/libevent.a(evutil_time.o): In function `evutil_gettime_monotonic_': /usr/local/src/libevent-2.1.8-stable/evutil_time.c:315: undefined reference to `clock_gettime' /usr/local/libevent/lib/libevent.a(evutil_time.o): In function `evutil_configure_monotonic_time_': /usr/local/src/libevent-2.1.8-stable/evutil_time.c:289: undefined reference to `clock_gettime' /usr/local/src/libevent-2.1.8-stable/evutil_time.c:283: undefined reference to `clock_gettime' collect2: ld returned 1 exit status make: *** [magent] Error 1 #解决 vim Makefile #找到 LIBS = /usr/lib64/libevent.a /usr/lib64/libm.a #替换为libevent安装目录lib LIBS = /usr/local/libevent/lib/libevent.a /usr/lib64/libm.a #找到 CFLAGS = -Wall -g -O2 -I/usr/local/include $(M64) #替换为libevent安装目录include CFLAGS = -lrt -Wall -g -O2 -I/usr/local/libevent/include $(M64)
#报错 gcc -Wall -g -O2 -I/usr/local/include -m64 -c -o magent.o magent.c magent.c: In function 'writev_list': magent.c:729: error: 'SSIZE_MAX' undeclared (first use in this function) magent.c:729: error: (Each undeclared identifier is reported only once magent.c:729: error: for each function it appears in.) make: *** [magent.o] Error 1 vim ketama.h #在开头加入 #ifndef SSIZE_MAX #define SSIZE_MAX 32767 #endif
#最后就成功了 make export PATH=$PATH:/usr/local/memcached/bin/ #加入环境变量 echo 'export PATH=$PATH:/usr/local/memcached/bin/' >> /etc/profile echo 'export PATH=$PATH:/usr/local/magent' >> /etc/profile source /etc/profile
启动
#开启多个memcached memcached -m 1 -u root -d -l 127.0.0.1 -p 11211 memcached -m 1 -u root -d -l 127.0.0.1 -p 11212 memcached -m 1 -u root -d -l 127.0.0.1 -p 11213 #代理memcached magent -u root -n 51200 -l 127.0.0.1 -p 12000 -s 127.0.0.1:11211 -s 127.0.0.1:11212 -b 127.0.0.1:11213
分别在11211、11212、11213端口启动3个Memcached进程,在12000端口开启magent代理程序;
11211、11212端口为主Memcached,11213端口为备份Memcached;
连接上12000的magent,set key1和set key2,根据哈希算法,key1被写入11212和11213端口的Memcached,key2被写入11212和11213端口的Memcached;
当11211、11212端口的Memcached死掉,连接到12000端口的magent取数据,数据会从11213端口的Memcached取出;
当11211、11212端口的Memcached重启复活,连接到12000端口,magent会从11211或11212端口的Memcached取数据,由于这两台Memcached重启后无数据,因此magent取得的将是空值,尽管11213端口的Memcached还有数据(此问题尚待改进)。
PHP Memcached拓展安装
#安装memcached客户端 cd /usr/local/src wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz tar -zxvf libmemcached-1.0.18.tar.gz cd libmemcached-1.0.18 #配置 ./configure --prefix=/usr/local/libmemcached #编译安装 make && make install #安装php memcached拓展 cd /usr/local/src wget http://pecl.php.net/get/memcached-2.2.0.tgz tar -zxvf memcached-2.2.0.tgz cd memcached-2.2.0 #phpize /usr/local/php/bin/phpize #配置 ./configure --with-php-config=/usr/local/php/bin/php-config -with-libmemcached-dir=/usr/local/libmemcached/ #编译安装 make && make install vim /usr/local/php/etc/php.ini #添加 extension=memcached.so #重启web服务或者php-fpm service php-fpm restart
相关文章推荐
- ELK -- ElasticSearch集群安装、配置及错误处理
- Linux CentOS 安装 Apache PHP MYSQL Memcached Memcache 环境配置 并且辅助安装遇见的错误处理(全文搜索
- Memcached集群代理软件magent安装小结
- ELK -- ElasticSearch集群安装、配置及错误处理
- Memcached集群代理软件magent安装小结
- 【转】sql2005安装过程owc11错误处理
- ipvsadm安装及部分错误处理
- Amule的linux下安装、配置详解及错误处理办法
- wine 安装一些windows软件的错误以及处理
- Linux下安装oracle 10g 时环境检测 DHCP错误的处理
- ns2 安装所有可能错误处理
- suse linux 10 sp2 安装domino 6.54的语言包时出现的 GLIBC_2.0 错误的处理方法
- 如何处理在WINDOWS VISTA上安装VS2008时遇到要求安装WINDOWS XP SP2的错误和QQ对战平台安装后不能登录的问题
- 安装(显卡)驱动出现错误及其导致无法进入X的处理办法
- magent做memcached集群
- 数据库安装错误的解决方式 【转】如何处理 SQL Server 安装过程中的 COM+ 检查失败问题 - ...
- 安装SQL SERVER 2005出现“无法在 COM+ 目录中安装和配置程序集”错误处理
- bugfree2.0.3 安装时候错误处理----安装后无法查看统计报表
- 安装QTE的过程中出现 no such file qconfig-qvfb.h 的错误处理
- 安装libpcap错误处理