[root@localhost upload]# yum install gcc make cmake autoconf libtool
memcached 依賴於 libevent 庫,因此我們需要先安裝 libevent.,ibevent和memcached的下載路徑
http://sourceforge.net/projects/levent/?source=typ_redirect
https://github.com/memcached/memcached/wiki/ReleaseNotes1425
[root@localhost upload]# ls
libevent-2.0.22-stable libevent-2.0.22-stable.tar.gz memcached-1.4.25.tar.gz
[root@localhost upload]#
[root@localhost upload]#tar zxvf libevent-2.0.21-stable.tar.gz
[root@localhost upload]# cd libevent-2.0.22-stable
[root@localhost upload]#./configure --prefix=/usr/local/libevent
[root@localhost upload]#make && make install
[root@localhost upload]# tar zxvf memcached-1.4.25.tar.gz
[root@localhost upload]# cd memcached-1.4.25
[root@localhost upload]# ./configure --prefix=/usr/local/memcached
報錯:
checking for libevent directory... configure: error: libevent is required. You can get it from http://www.monkey.org/~provos/libevent/
If it's already installed, specify its path using --with-libevent=/dir/
提示需要libevent,需要指明libevent的安裝目錄
[root@localhost upload]#
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
[root@localhost memcached-1.4.25]# make && make install
沒什麼錯誤提示的話,編譯成功。
Memcached已經成功安裝到/usr/local/memcached/bin/memcached目錄下。
[root@localhost memcached-1.4.25]# /usr/local/memcached/bin/memcached -m 64 -p 11211 -u nobody -vv
slab class 1: chunk size 80 perslab 13107
slab class 2: chunk size 104 perslab 10082
slab class 3: chunk size 136 perslab 7710
slab class 4: chunk size 176 perslab 5957
slab class 5: chunk size 224 perslab 4681
slab class 6: chunk size 280 perslab 3744
slab class 7: chunk size 352 perslab 2978
......
可以看到memcached已經啟動,並把信息輸出到控制台。
各個參數解析:
-m 內存大小
-p 端口
-u 用戶
-vv 詳細信息
如果我們想讓memcached作為守護進程在後台運行,只需要加-d選項
[root@localhost memcached-1.4.25]#/usr/local/memcached/bin/memcached
-m 64 -p 11211 -u nobody -d
摘自網上的幾個重要參數
-p <num> 監聽的TCP端口(默認: 11211)
-d 作為守護進程來運行。
-u <username> 設定進程所屬用戶。(只有root用戶可以使用這個參數)
-m <num> 所有slab class可用內存的上限,以MB為單位。(默認:64MB)
(譯者注:也就是分配給該memcached實例的內存大小。)
-c <num> 最大並發連接數。(默認:1024)
-v 提示信息(在事件循環中打印錯誤/警告信息。)
-vv 詳細信息(還打印客戶端命令/響應)
-vvv 超詳細信息(還打印內部狀態的變化)
-h 打印這個幫助信息並退出。
-f <factor> 不同slab class裡面的chunk大小的增長倍率(增長因子)。(默認:1.25)
(譯者注:每個slab class裡面有相同數量個slab page,每個slab page裡面有chunk, 且在當前slab class內的chunk大小固定。
而不同slab class裡的chunk大小不一致,具體差異就是根據這個參數的倍率在增長,直 到分配的內存用盡。)
-n <bytes> chunk的最小空間(默認:48)
(譯者注:chunk數據結構本身需要消耗48個字節,所以一個chunk實際消耗的內存是 n+48。)
下面我們將介紹memcached的連接。
memcached客戶端與服務器端的通信比較簡單,使用的基於文本的協議,而不是二進制協議.
(http協議也是這樣), 因此我們通過telnet即可與memcached作交互
[root@localhost libevent-2.0.22-stable]# yum install telnet*
[root@localhost libevent-2.0.22-stable]# telnet 192.168.1.112 11211
Trying 192.168.1.112...
Connected to 192.168.1.112.
Escape character is '^]'.
按下Ctrl + ] 打開回顯功能,Enter即可.如下:
[root@localhost libevent-2.0.22-stable]# telnet 192.168.1.112 11211
Trying 192.168.1.112...
Connected to 192.168.1.112.
Escape character is '^]'.
^]
telnet>
可以看到memcached控制台輸出了客戶端連接的信息
<34 server listening (udp)
<35 server listening (udp)
<36 new auto-negotiating client connection
如果從windows的控制台連接到linux中的memcached,需要打開linux 的 11211端口的訪問權限,如下
[root@localhost libevent-2.0.22-stable]# /sbin/iptables -I INPUT -p tcp --dport 11211 -j ACCEPT
同樣,在windows的控制台輸入telnet 192.168.1.112 11211即可連接。