1. 程式人生 > >Memcache的安裝和使用【轉】

Memcache的安裝和使用【轉】

轉自:https://www.cnblogs.com/caoxiaojian/p/5715573.html

Memcache是高效能,分散式的記憶體物件快取系統,用於在動態應用中減少資料庫負載,提升訪問速度。為了提高效能,memcached中儲存的資料都儲存在memcached內建的記憶體儲存空間中。由於資料僅存在於記憶體中,因此重啟memcached、重啟作業系統會導致全部資料消失。另外,內容容量達到指定值之後,就基於LRU(Least Recently Used)演算法自動刪除不使用的快取。         libevent是一套跨平臺的事件處理介面的封裝,能夠相容包括這些作業系統:Windows/Linux/BSD/Solaris 等作業系統的的事件處理。Memcached 使用libevent來進行網路併發連線的處理,能夠保持在很大併發情況下,仍舊能夠保持快速的響應能力。所以安裝Memcached需先安裝libevent。

一、libevent的安裝

基礎環境的準備 
  1. wget http://sourceforge.net/projects/levent/files/libevent/libevent-2.0/libevent-2.0.22-stable.tar.gz
  2. tar -zxvf libevent-2.0.22-stable.tar.gz
  3. cd libevent-2.0.22-stable
  4. ./configure --prefix=/application/libevent
  5. make
  6. make install

二、Memcache的安裝

  1. wget http://www.memcached.org/files/memcached-1.4.29.tar.gz
  2. tar -zxvf memcached-1.4.29.tar.gz
  3. cd memcached-1.4.29
  4. ./configure --prefix=/application/memcached --with-libevent=/application/libevent
  5. make
  6. make install

啟動選項介紹:

-p TCP監聽埠 (default: 11211) -U UDP 監聽埠 (default: 11211, 0 is off) -s UNIX socket監聽路徑,不支援網路 -a UNIX socket訪問掩碼, 八進位制 (default: 0700) -l <ip_addr> 監聽的伺服器IP地址 (default: all addresses) -r 最大限度利用核心檔案限制 -u 執行memcached使用者 -m 最大的記憶體使用 (default: 64 MB) -M 記憶體耗盡返回錯誤 -c 最大併發連線 (default: 1024),按照你伺服器的負載量來設定。 -k 鎖定所有分頁記憶體 -v 輸出警告和錯誤資訊 -vv 同時列印客戶端請求和返回資訊 -vvv 列印內部狀態轉換資訊 -i 列印memcached 和 libevent 版本資訊 -P 設定儲存pid檔案, only used with -d option -f 塊大小增長倍數 (default: 1.25) -n key+value+flags最小分配空間(default: 48),key+value+flags預設是48 -L 如何有效,嘗試使用大記憶體頁。增加記憶體頁大小可以減少失誤的TLB數量,提高效能。 -D 指定key和IDs的分隔符 default is “:” (colon). 如果指定此選項,統計資訊收集自動開啟; -t 使用的執行緒數量 (default: 4) -R 每個事件的最大請求數 (default: 20) -C 禁止使用 CAS -b 設定積壓佇列數限制 (default: 1024) -B 繫結協議 – one of ascii, binary, or auto (default) -I 分配給每個slab頁(default: 1mb, min: 1k, max: 128m)

服務啟動

  1. memcached -d -m 10 -u root -l 192.168.0.122 -p 11200 -c 256 -P /tmp/memcached.pid
-d 選項是啟動一個守護程序, -m 是分配給Memcache使用的記憶體數量,單位是MB,這裡是10MB -u 是執行Memcache的使用者,這裡是root -l 是監聽的伺服器IP地址,如果有多個地址的話,這裡指定了伺服器的IP地址192.168.0.122 -p 是設定Memcache監聽的埠,這裡設定了12000,最好是1024以上的埠 -c 選項是最大執行的併發連線數,預設是1024,這裡設定了256,按照你伺服器的負載量來設定 -P 是設定儲存Memcache的pid檔案

檢查服務:

1、檢視啟動的memcache服務: netstat -lp | grep memcached 2、檢視memcache的程序號(根據程序號,可以結束memcache服務:“kill -9 程序號”) ps -ef | grep memcached 3、檢視狀態         對Memcached快取服務的狀態查詢,可以先telnet連線上服務:telnet 127.0.0.1 11211 ,然後使用 stats命令檢視快取服務的狀態,會返回如下的資料:    
  1. STAT pid 27954
  2. STAT uptime 139
  3. STAT time 1427031155
  4. STAT version 1.4.22
  5. STAT libevent 2.0.22-stable
  6. STAT pointer_size 32
  7. STAT rusage_user 0.005999
  8. STAT rusage_system 0.011998
  9. STAT curr_connections 10
  10. STAT total_connections 11
  11. STAT connection_structures 11
  12. STAT reserved_fds 20
  13. STAT cmd_get 0
  14. STAT cmd_set 0
  15. STAT cmd_flush 0
  16. STAT cmd_touch 0
  17. STAT get_hits 0
  18. STAT get_misses 0
  19. STAT delete_misses 0
  20. STAT delete_hits 0
  21. STAT incr_misses 0
  22. STAT incr_hits 0
  23. STAT decr_misses 0
  24. STAT decr_hits 0
  25. STAT cas_misses 0
  26. STAT cas_hits 0
  27. STAT cas_badval 0
  28. STAT touch_hits 0
  29. STAT touch_misses 0
  30. STAT auth_cmds 0
  31. STAT auth_errors 0
  32. STAT bytes_read 7
  33. STAT bytes_written 0
  34. STAT limit_maxbytes 67108864
  35. STAT accepting_conns 1
  36. STAT listen_disabled_num 0
  37. STAT threads 4
  38. STAT conn_yields 0
  39. STAT hash_power_level 16
  40. STAT hash_bytes 262144
  41. STAT hash_is_expanding 0
  42. STAT malloc_fails 0
  43. STAT bytes 0
  44. STAT curr_items 0
  45. STAT total_items 0
  46. STAT expired_unfetched 0
  47. STAT evicted_unfetched 0
  48. STAT evictions 0
  49. STAT reclaimed 0
  50. STAT crawler_reclaimed 0
  51. STAT lrutail_reflocked 0
引數項說明: time:伺服器當前的unix時間戳 total_items:從伺服器啟動以後儲存的items總數量 connection_structures:伺服器分配的連線構造數 version:memcache版本 limit_maxbytes:分配給memcache的記憶體大小(位元組) cmd_get:get命令(獲取)總請求次數 evictions:為獲取空閒記憶體而刪除的items數(分配給memcache的空間用滿後需要刪除舊的items來得到空間分配給新的items) total_connections:從伺服器啟動以後曾經開啟過的連線數 bytes:當前伺服器儲存items佔用的位元組數 threads:當前執行緒數 get_misses:總未命中次數 pointer_size:當前作業系統的指標大小(32位系統一般是32bit) bytes_read:總讀取位元組數(請求位元組數) uptime:伺服器已經執行的秒數 curr_connections:當前開啟著的連線數 pid:memcache伺服器的程序ID bytes_written:總髮送位元組數(結果位元組數) get_hits:總命中次數 cmd_set:set命令(儲存)總請求次數 curr_items:伺服器當前儲存的items數量

常用命令的操作參考

http://www.cnblogs.com/jeffwongishandsome/archive/2011/11/06/2238265.html
來自為知筆記(Wiz)

作者: 曹小賤      出處: http://www.cnblogs.com/caoxiaojian/      本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。 Memcache是高效能,分散式的記憶體物件快取系統,用於在動態應用中減少資料庫負載,提升訪問速度。為了提高效能,memcached中儲存的資料都儲存在memcached內建的記憶體儲存空間中。由於資料僅存在於記憶體中,因此重啟memcached、重啟作業系統會導致全部資料消失。另外,內容容量達到指定值之後,就基於LRU(Least Recently Used)演算法自動刪除不使用的快取。         libevent是一套跨平臺的事件處理介面的封裝,能夠相容包括這些作業系統:Windows/Linux/BSD/Solaris 等作業系統的的事件處理。Memcached 使用libevent來進行網路併發連線的處理,能夠保持在很大併發情況下,仍舊能夠保持快速的響應能力。所以安裝Memcached需先安裝libevent。

一、libevent的安裝

基礎環境的準備 
  1. wget http://sourceforge.net/projects/levent/files/libevent/libevent-2.0/libevent-2.0.22-stable.tar.gz
  2. tar -zxvf libevent-2.0.22-stable.tar.gz
  3. cd libevent-2.0.22-stable
  4. ./configure --prefix=/application/libevent
  5. make
  6. make install

二、Memcache的安裝

  1. wget http://www.memcached.org/files/memcached-1.4.29.tar.gz
  2. tar -zxvf memcached-1.4.29.tar.gz
  3. cd memcached-1.4.29
  4. ./configure --prefix=/application/memcached --with-libevent=/application/libevent
  5. make
  6. make install

啟動選項介紹:

-p TCP監聽埠 (default: 11211) -U UDP 監聽埠 (default: 11211, 0 is off) -s UNIX socket監聽路徑,不支援網路 -a UNIX socket訪問掩碼, 八進位制 (default: 0700) -l <ip_addr> 監聽的伺服器IP地址 (default: all addresses) -r 最大限度利用核心檔案限制 -u 執行memcached使用者 -m 最大的記憶體使用 (default: 64 MB) -M 記憶體耗盡返回錯誤 -c 最大併發連線 (default: 1024),按照你伺服器的負載量來設定。 -k 鎖定所有分頁記憶體 -v 輸出警告和錯誤資訊 -vv 同時列印客戶端請求和返回資訊 -vvv 列印內部狀態轉換資訊 -i 列印memcached 和 libevent 版本資訊 -P 設定儲存pid檔案, only used with -d option -f 塊大小增長倍數 (default: 1.25) -n key+value+flags最小分配空間(default: 48),key+value+flags預設是48 -L 如何有效,嘗試使用大記憶體頁。增加記憶體頁大小可以減少失誤的TLB數量,提高效能。 -D 指定key和IDs的分隔符 default is “:” (colon). 如果指定此選項,統計資訊收集自動開啟; -t 使用的執行緒數量 (default: 4) -R 每個事件的最大請求數 (default: 20) -C 禁止使用 CAS -b 設定積壓佇列數限制 (default: 1024) -B 繫結協議 – one of ascii, binary, or auto (default) -I 分配給每個slab頁(default: 1mb, min: 1k, max: 128m)

服務啟動

  1. memcached -d -m 10 -u root -l 192.168.0.122 -p 11200 -c 256 -P /tmp/memcached.pid
-d 選項是啟動一個守護程序, -m 是分配給Memcache使用的記憶體數量,單位是MB,這裡是10MB -u 是執行Memcache的使用者,這裡是root -l 是監聽的伺服器IP地址,如果有多個地址的話,這裡指定了伺服器的IP地址192.168.0.122 -p 是設定Memcache監聽的埠,這裡設定了12000,最好是1024以上的埠 -c 選項是最大執行的併發連線數,預設是1024,這裡設定了256,按照你伺服器的負載量來設定 -P 是設定儲存Memcache的pid檔案

檢查服務:

1、檢視啟動的memcache服務: netstat -lp | grep memcached 2、檢視memcache的程序號(根據程序號,可以結束memcache服務:“kill -9 程序號”) ps -ef | grep memcached 3、檢視狀態         對Memcached快取服務的狀態查詢,可以先telnet連線上服務:telnet 127.0.0.1 11211 ,然後使用 stats命令檢視快取服務的狀態,會返回如下的資料:    
  1. STAT pid 27954
  2. STAT uptime 139
  3. STAT time 1427031155
  4. STAT version 1.4.22
  5. STAT libevent 2.0.22-stable
  6. STAT pointer_size 32
  7. STAT rusage_user 0.005999
  8. STAT rusage_system 0.011998
  9. STAT curr_connections 10
  10. STAT total_connections 11
  11. STAT connection_structures 11
  12. STAT reserved_fds 20
  13. STAT cmd_get 0
  14. STAT cmd_set 0
  15. STAT cmd_flush 0
  16. STAT cmd_touch 0
  17. STAT get_hits 0
  18. STAT get_misses 0
  19. STAT delete_misses 0
  20. STAT delete_hits 0
  21. STAT incr_misses 0
  22. STAT incr_hits 0
  23. STAT decr_misses 0
  24. STAT decr_hits 0
  25. STAT cas_misses 0
  26. STAT cas_hits 0
  27. STAT cas_badval 0
  28. STAT touch_hits 0
  29. STAT touch_misses 0
  30. STAT auth_cmds 0
  31. STAT auth_errors 0
  32. STAT bytes_read 7
  33. STAT bytes_written 0
  34. STAT limit_maxbytes 67108864
  35. STAT accepting_conns 1
  36. STAT listen_disabled_num 0
  37. STAT threads 4
  38. STAT conn_yields 0
  39. STAT hash_power_level 16
  40. STAT hash_bytes 262144
  41. STAT hash_is_expanding 0
  42. STAT malloc_fails 0
  43. STAT bytes 0
  44. STAT curr_items 0
  45. STAT total_items 0
  46. STAT expired_unfetched 0
  47. STAT evicted_unfetched 0
  48. STAT evictions 0
  49. STAT reclaimed 0
  50. STAT crawler_reclaimed 0
  51. STAT lrutail_reflocked 0
引數項說明: time:伺服器當前的unix時間戳 total_items:從伺服器啟動以後儲存的items總數量 connection_structures:伺服器分配的連線構造數 version:memcache版本 limit_maxbytes:分配給memcache的記憶體大小(位元組) cmd_get:get命令(獲取)總請求次數 evictions:為獲取空閒記憶體而刪除的items數(分配給memcache的空間用滿後需要刪除舊的items來得到空間分配給新的items) total_connections:從伺服器啟動以後曾經開啟過的連線數 bytes:當前伺服器儲存items佔用的位元組數 threads:當前執行緒數 get_misses:總未命中次數 pointer_size:當前作業系統的指標大小(32位系統一般是32bit) bytes_read:總讀取位元組數(請求位元組數) uptime:伺服器已經執行的秒數 curr_connections:當前開啟著的連線數 pid:memcache伺服器的程序ID bytes_written:總髮送位元組數(結果位元組數) get_hits:總命中次數 cmd_set:set命令(儲存)總請求次數 curr_items:伺服器當前儲存的items數量

常用命令的操作參考

http://www.cnblogs.com/jeffwongishandsome/archive/2011/11/06/2238265.html
來自為知筆記(Wiz)