分佈式memcached服務器代理magent安裝配置(CentOS6.6)

四臺代理服務器:

magent 代理服務器:192.168.1.71

memcahed 備份服務器:192.168.1.70

memcached 存儲服務器:192.168.1.75

memcached 存儲服務器:192.168.1.86

memcached 存儲服務器安裝配置(192.168.1.70);


首先

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
# 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 localhost  -p 11211
magent 代理服務器安裝配置(192.168.1.71);


1、編譯安裝libevent

# yum install gcc gcc-c++ libgnomeui-devel
# 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
#make && make install

2、編譯安裝magent

# wget http://memagent.googlecode.com/files/magent-0.6.tar.gz
#cp magent-0.6.tar.gz  ./magent
#cd ./magent
# tar xzvf ./magent-0.6.tar.gz
# /sbin/ldconfig
# sed -i "s/LIBS = -levent/LIBS = -levent -lm/g" Makefile
#make

在make時會出現錯誤

magent.c: 在函數‘writev_list’中:
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/magent

啓動magent

# /usr/bin/magent -u root -n 4096 -l 192.168.1.71 -p 12000 -s 192.168.1.86:11211 -s 192.168.1.75:11211  -b 192.168.1.70:11211

查看magent是否啓動成功

#ps -ef | grep magent

root      7763     1  0 05:10 ?        00:00:00 /usr/bin/magent -u root -n 4096  -l 192.168.1.71 -p 12000 -s 192.168.1.86:11211 -s 192.168.1.75:11211
 -b 192.70.            1.3:11211
root     11777 11708  0 05:29 pts/0    00:00:00 grep magent

magent 參數

  -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 don't go to background
  -k use ketama key allocation algorithm
  -f file, unix socket path to listen on. default is off
  -i number, set max keep alive connections for one memcached server, default is 20
  -v verbose

在你的根目錄下創建文件測試

<?php

$mem = new Memcache();
//.........
$mem->connect('192.168.1.71',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.71 (tcp 12000) failed with: Failed reading line from stream (0)
原因是:代理magent沒有連接到memcached服務器

解決辦法
啓動memcached的時候,不能使用 –l 127.0.0.1或者-l localhost,要設置當前IP

#/usr/local/memcached/bin/memcached -m 100 -u root  -d  -l 192.168.1.70  -p 11211


最後使用memadmin監控memcached服務器的存儲狀態






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章