Memcache服務器安裝配置(192.168.1.247~249)
首先:配置本地YUM源,掛載光驅,安裝編譯器
yum install gcc gcc-c++
1、編譯安裝libevent
wget http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz tar zxvf libevent-1.4.9-stable.tar.gz cd libevent-1.4.9-stable/ mkdir /usr/local/libevent ./configure --prefix=/usr/local/libevent make && make install
2、編譯安裝Memcached:
wget http://danga.com/memcached/dist/memcached-1.2.6.tar.gz tar zxvf memcached-1.2.6.tar.gz cd memcached-1.2.6/ mkdir /usr/local/memcached ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent make && make install
3、啓動memcached服務器:
/usr/local/memcached/bin/memcached -m 100 -u root -d -l 127.0.0.1 -p 11211
memcached參數詳解:
-p TCP port number to listen on (default: 11211)
-U UDP port number to listen on (default: 0, off)
-s unix socket path to listen on (disables network support)
-a access mask for unix socket, in octal (default 0700)
-l interface to listen on, default is INDRR_ANY
-d run as a daemon
-r maximize core file limit
-u assume identity of (only when run as root)
-m max memory to use for items in megabytes, default is 64 MB
-M return error on memory exhausted (rather than removing items)
-c max simultaneous connections, default is 1024
-k lock down all paged memory. Note that there is a
limit on how much memory you may lock. Trying to
allocate more than that would fail, so be sure you
set the limit correctly for the user you started
the daemon with (not for -u user;
under sh this is done with ‘ulimit -S -l NUM_KB’).
-v verbose (print errors/warnings while in event loop)
-vv very verbose (also print client commands/reponses)
-h print this help and exit
-i print memcached and libevent license
-b run a managed instanced (mnemonic: buckets)
-P save PID in , only used with -d option
-f chunk size growth factor, default 1.25
-n minimum space allocated for key+value+flags, default 48
memcache代理服務器magent安裝配置(192.168.1.246)
1、 magent是一款開源的Memcached代理服務器軟件,其項目網址爲:http://code.google.com/p/memagent/ 目前最新版本爲0.6
2、 安裝,先配置本地源,掛載光驅,安裝編譯器
Yum install gcc gcc-c++ libgnomeui-devel
3、 編譯安裝libevent:
wget http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz //下載安裝libevent tar zxvf libevent-1.4.9-stable.tar.gz cd libevent-1.4.9-stable/ mkdir /usr/local/libevent ./configure make && make install
4、 安裝magent
mkdir /usr/local/magent cp ./magent-0.6.tar.gz /usr/local/magent cd /usr/local/magent tar xzvf ./magent-0.6.tar.gz /sbin/ldconfig sed -i "s/LIBS = -levent/LIBS = -levent -lm/g" Makefile make
magent.c:729: 錯誤:‘SSIZE_MAX’未聲明(在此函數內第一次使用)
magent.c:729: 錯誤:(即使在一個函數內多次出現,每個未聲明的標識符在其
magent.c:729: 錯誤:所在的函數內也只報告一次。)
make: *** [magent.o] 錯誤 1
解決方案:
#在ketama.h開頭加入(過濾掉特殊字符)
#ifndef SSIZE_MAX #define SSIZE_MAX 32767 #endif
繼續make
cp magent /usr/bin/
啓動memagent:
/usr/bin/magent -u root -n 4096 -l 192.168.1.246 -p 12000 -s 192.168.1.247:11211 -s 192.168.1.248:11211 -b 192.168.1.249:11211magent命令詳解:
-h this message
-u uid
-g gid
-p port, default is 11211. (0 to disable tcp support)
-s ip:port, set memcached server ip and port
-b ip:port, set backup memcached server ip and port
-l ip, local bind ip address, default is 0.0.0.0
-n number, set max connections, default is 4096
-D do not go to background
-k use ketama key allocation algorithm
-f file, unix socket path to listen on. default is off
-i number, max keep alive connections for one memcached server, default is 20
-v verbose
PHP開啓擴展php_memcache.Dll注意版本的問題
//phpinfo(); //查看擴展是否開啓 $mem = new Memcache(); //直接連接代理服務器 $mem->connect('192.168.1.246',12000) or die('connect fail!<br>'); echo "connect success!<br>"; for($i=0;$i<10;$i++){ if($mem->set('key'.$i , 'data'.$i , 0 , 3600)){ echo "set ok!"; }else{ echo "set false!"; } }報錯提示:
Notice: Memcache::set(): Server 192.168.1.246 (tcp 12000) failed with: Failed reading line from stream (0)
原因是:代理magent沒有連接到memcached服務器
打開 vi /etc/sysconfig/iptables 添加memcache的端口,在重啓
解決方案:
啓動memcached的時候,不能使用 –l 127.0.0.1或者-l localhost,要設置當前IP
/usr/local/memcached/bin/memcached -m 100 -u root -d -l 192.168.1.247 -p 11211使用memadmin監控memcached服務器的存儲狀態:
備份服務器bak_249請求次數10次,s1_247五次,s2_248五次,memadmin統計信息如下圖: