memcache用到了libevent這個庫用於socket的處理,所以還需要安裝libevent。(如果你的系統已經安裝了libevent,可以不用安裝)
官網:
wgettar zxvf libevent-1.4.9-stable.tar.gz
cd libevent-1.4.9-stable
./configure --prefix=/usr/local
make
make install
安裝memcache
d
wgettar -zxvf memcached-1.4.0.tar.gz
cd memcached-1.4.0
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local
make
make install
安裝完成後的memcached在 /usr/local/bin/memcached
這時執行memcached -m 500 -p 11333, 有可能會出現:
memcached: error while loading shared libraries: libevent-1.2.so.1: cannot open shared object file: no such file or directory
這說明沒有找到檔案:libevent-1.2.so.1
解決辦法如下:
第一步. 檢視下lib路徑:
which memcached 得到
/usr/local/memcached/bin/memcached
ld_debug=libs /usr/local/memcached/bin/memcached -v
第二步. 將libevent-1.2.so.1拷貝到任何乙個列出的lib下。或者軟鏈結到列出的lib下(很多情況下是/usr/lib下有該檔案,需要把該檔案拷貝到/usr/lib64/下)
啟動memcached,-m表示分配的記憶體
/usr/local/memcached/bin/memcached -d -m 1024 -u admin -l 127.0.0.1 -p 11211
引數說明:
-d選項是啟動乙個守護程序
-m是分配給memcache使用的記憶體數量,單位是mb,我這裡是10mb
-u是執行memcache的使用者,我這裡是root
-l是監聽的伺服器ip位址
-p是設定memcache監聽的埠,最好是1024以上的埠
-c選項是最大執行的併發連線數,預設是1024,按照你伺服器的負載量來設定
-p是設定儲存memcache的pid檔案
#關閉防火牆。
#永久性生效,重啟後不會復原
開啟: chkconfig iptables on
關閉: chkconfig iptables off
#即時生效,重啟後復原
開啟: service iptables start
關閉: service iptables stop
#修改/etc/sysconfig/iptables檔案,
新增-a rh-firewall-1-input -m state --state new -m tcp -p tcp --dport 11211 -j accept
結束memcache程序。
kill cat /tmp/memcached.pid
監測是否啟動成功方式
telnet 192.168.160.129 11211
直接敲擊stats命令
memcache的常見概念
memcached會預先分配記憶體,memcached分配記憶體方式稱之為allocator,首先,這裡有3個概念: 1 slab 2 page 3 chunk 解釋一下,一般來說乙個memcahced程序會預先將自己劃分為若干個slab,每個slab下又有若干個page,每個page下又有多 個chunk,如果我們把這3個咚咚看作是object得話,這是兩個一對多得關係。再一般來說,slab得數量是有限得,幾個,十幾個,或者幾十個,這 個跟程序配置得記憶體有關。而每個slab下得page預設情況是1m,也就是說如果乙個slab占用100m得記憶體得話,那麼預設情況下這個slab所擁 有得page得個數就是100,而chunk就是我們得資料存放得最終地方
memcache的常用命令
查詢狀態命令:stats:
查詢版本號 version
退出命令 quit
清空快取資料(其實是將所有快取資料標記為過期):flush_all
memcached 操作:
telnet localhost 11211
set foo 0 0 3
bar
stored
get foo
value foo 0 3
barquit
memcache命令:
shell操作memcache:
1、資料儲存(假設key為foo,value為123)
printf "set foo 0 0 3\r\n123\r\n" | nc 127.0.0.1 11211
stored
2、資料取回(假設key為foo)
printf "get foo\r\n" | nc 127.0.0.1 11211
value foo 0 3
123end
3、數值增加1(假設key為foo,並且value為正整數)
printf "incr foo 1\r\n" | nc 127.0.0.1 11211
1244、數值減少3(假設key為foo,並且value為正整數)
printf "decr foo 3\r\n" | nc 127.0.0.1 11211
1215、資料刪除(假設key為foo)
printf "delete foo\r\n" | nc 127.0.0.1 11211
deleted
6、檢視memcached狀態
printf "stats\r\n" | nc 127.0.0.1 11211
stat pid 22563
stat uptime 90706
7、模擬top命令,檢視memcached狀態:
watch "printf 'stats\r\n' | nc 127.0.0.1 11211"
watch "echo stats | nc 127.0.0.1 11211"
linux下memcached安裝以及啟動
3.由於linux系統可能預設已經安裝libevent,執行命令 rpm qa grep libevent檢視系統是否帶有該安裝軟體 如果有執行命令 rpm e libevent 1.1a 3.2.1 nodeps 由於系統自帶的版本舊,忽略依賴刪除 4.安裝libevent,tar zxvf li...
memcached編譯安裝
tar xvf memcached 1.4.15.tar.gz cd memcached 1.4.15 configure prefix usr local memcache 出現了 configure error libevent is required.you can get it from t...
memcached 的原始碼安裝
伺服器端主要是安裝memcache伺服器端.另外,memcache用到了libevent這個庫用於socket的處理,所以還需要安裝libevent,libevent的最新版本是libevent 1.3。如果你的系統已經安裝了libevent,可以不用安裝 官網 1.先安裝libevent。這個東西...