Memcached是一個自由開源的,高性能,分佈式內存對象緩存系統。 算法
Memcached簡潔而強大。它的簡潔設計便於快速開發,減輕開發難度,解決了大數據量緩存的不少問題。它的API兼容大部分流行的開發語言。 緩存
本質上,它是一個簡潔的key-value存儲系統。 服務器
咱們這裏用到的memcache 版本: 1.4.21 網絡
語法: 數據結構
/usr/local/bin/memcached -u root -c 50000 -t 8 -m 256 -l 192.168.1.101 -p 11211 -d
參數詳解: 架構
-p <num> 監聽的TCP端口(默認: 11211) -U <num> 監聽的UDP端口(默認: 11211, 0表示不監聽) -s <file> 用於監聽的UNIX套接字路徑(禁用網絡支持) -a <mask> UNIX套接字訪問掩碼,八進制數字(默認:0700) -l <ip_addr> 監聽的IP地址。(默認:INADDR_ANY,全部地址) -d 做爲守護進程來運行 -r 最大核心文件限制 -u <username> 設定進程所屬用戶。(只有root用戶可使用這個參數) -m <num> 全部slab class可用內存的上限,以MB爲單位。(默認:64MB) (譯者注:也就是分配給該memcached實例的內存大小。) -M 內存用光時報錯。(不會刪除數據) -c <num> 最大併發鏈接數。(默認:1024) -k 鎖定全部內存頁。注意你能夠鎖定的內存上限。 試圖分配更多內存會失敗的,因此留意啓動守護進程時所用的用戶可分配的內存上限。 (不是前面的 -u <username> 參數;在sh下,使用命令"ulimit -S -l NUM_KB"來設置。) -v 提示信息(在事件循環中打印錯誤/警告信息。) -vv 詳細信息(還打印客戶端命令/響應) -vvv 超詳細信息(還打印內部狀態的變化) -h 打印這個幫助信息並退出 -i 打印memcached和libevent的許可 -P <file> 保存進程ID到指定文件,只有在使用 -d 選項的時候纔有意義 -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。) -L 嘗試使用大內存頁(若是可用的話)。提升內存頁尺寸能夠減小"頁表緩衝(TLB)"丟失次數,提升運行效率。 爲了從操做系統得到大內存頁,memcached會把所有數據項分配到一個大區塊。 -D <char> 使用 <char> 做爲前綴和ID的分隔符 這個用於按前綴得到狀態報告。默認是":"(冒號) 若是指定了這個參數,則狀態收集會自動開啓;若是沒指定,則須要用命令"stats detail on"來開啓。 -t <num> 使用的線程數(默認:4) -R 每一個鏈接可處理的最大請求數 -C 禁用CAS -b 設置後臺日誌隊列的長度(默認:1024) -B 綁定協議 - 可能值:ascii,binary,auto(默認) -I 重寫每一個數據頁尺寸。調整數據項最大尺寸
Memcached stats 命令用於返回統計信息例如 PID(進程號)、版本號、鏈接數等 併發
語法: 分佈式
echo -e "stats\nquit\n" | /usr/bin/nc 192.168.1.101 11211
參數詳解: memcached
STAT pid 20487 ## memcache 進程PID STAT uptime 1977637 ## 自memcache啓動以來,服務器運行秒數 STAT time 1461202739 ## 服務器當前unix時間戳 STAT version 1.4.21 ## memcache 服務器版本 STAT libevent 1.4.13-stable ## libevent 版本 STAT pointer_size 64 ## 架構(32 或 64 位) STAT rusage_user 150.835069 ## 進程累計用戶時間 STAT rusage_system 249.086133 ## 進程累計系統時間 STAT curr_connections 10 ## 當前打開鏈接數 STAT total_connections 5509 ## 自memcache啓動以來,打開的鏈接總數 STAT connection_structures 11 ## 服務器分配的鏈接結構數 STAT reserved_fds 40 ## STAT cmd_get 8913248 ## 自memcache啓動以來,執行get命令總數 STAT cmd_set 123382 ## 自memcache啓動以來,執行set命令總數 STAT cmd_flush 0 ## 自memcache啓動以來,執行flush命令總數 STAT cmd_touch 0 ## 自memcache啓動以來,執行touch_all命令總數 STAT get_hits 8913074 ## 自memcache啓動以來,get命中次數 STAT get_misses 174 ## 自memcache啓動以來,get未命中次數 STAT delete_misses 0 ## 自memcache啓動以來,delete未命中次數 STAT delete_hits 0 ## 自memcache啓動以來,delete命中次數 STAT incr_misses 0 ## 自memcache啓動以來,incr未命中次數 STAT incr_hits 0 ## 自memcache啓動以來,incr命中次數 STAT decr_misses 0 ## 自memcache啓動以來,decr未命中次數 STAT decr_hits 0 ## 自memcache啓動以來,decr命中次數 STAT cas_misses 0 ## 自memcache啓動以來,cas未命中次數 STAT cas_hits 0 ## 自memcache啓動以來,cas命中次數 STAT cas_badval 0 ## 使用擦拭次數 STAT touch_hits 0 ## 自memcache啓動以來,touch命中次數 STAT touch_misses 0 ## 自memcache啓動以來,touch未命中次數 STAT auth_cmds 0 ## STAT auth_errors 0 ## STAT bytes_read 111225505 ## memcached服務器從網絡讀取的總的字節數 STAT bytes_written 3621054898 ## memcached服務器發送到網絡的總的字節數 STAT limit_maxbytes 33554432 ## memcached服務緩存容許使用的最大字節數(分配的內存數) STAT accepting_conns 1 ## 目前接受的連接數 STAT listen_disabled_num 0 ## STAT threads 8 ## 被請求的工做線程的總數量 STAT conn_yields 0 ## 鏈接操做主動放棄數目 STAT hash_power_level 16 ## STAT hash_bytes 524288 ## STAT hash_is_expanding 0 ## STAT malloc_fails 0 ## STAT bytes 384154 ## 存儲item字節數(當前存儲佔用的字節數) STAT curr_items 856 ## item個數(當前存儲的數據總數) STAT total_items 123382 ## item總數(啓動以來存儲的數據總數) STAT expired_unfetched 0 ## STAT evicted_unfetched 0 ## STAT evictions 0 ## LRU釋放的對象數目。爲了給新的數據項目釋放空間,從緩存移除的緩存對象的數目。好比超過緩存大小時根據LRU算法移除的對象,以及過時的對象 STAT reclaimed 0 ## 已過時的數據條目來存儲新數據的數目 STAT crawler_reclaimed 0 ## STAT lrutail_reflocked 0 ## END