memcached簡介
1、memcached是一個高性能的分布式的內存對象緩存系統,通過在內存里維護一個統一的巨大的hash表,它能夠用來存儲各種格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果等。
2、它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態、數據庫驅動網站的速度。
3、Memcached基於一個存儲鍵/值對的hashmap。
4、其守護進程(daemon )是用C寫的,
5、但是客戶端可以用任何語言來編寫,並通過memcached協議與守護進程通信。
memcached安裝說明
1、windows安裝:參照http://www.cnblogs.com/wucg/archive/2011/03/01/1968185.html
2、liunx安裝:參照http://chenzhou123520.iteye.com/blog/1933489
memcached使用方法
1、 安裝完memcached后,如何連接memached呢?
使用telnet命令連接memcached服務器,在windows下有可能提示telnet命令無效,是由於telnet客戶端沒有安裝,安裝方法參見(http://jingyan.baidu.com/article/925f8cb839ca6bc0dce05666.html)。
telnet連接memcached命令如下圖
開始什么都不顯示,回車后輸入命令 stats 查看統計信息,如下圖,說明服務器運作正常。
看到這樣的信息表示memcached安裝運行正常,使用telnet連接memcached成功。
常用memcached命令詳解
Memcached作為緩存服務器,對其操作的命令主要分為三類:
1、 服務器狀態命令:可以查看memcahced服務的當前狀態
2、 數據存儲命令:如何存儲數據到memcached服務器中
3、 數據讀取命令:獲取memacahed服務器中的數據
4、 數據刪除命令:刪除memcached服務器中的數據
一、服務器狀態命令
1、 stats: memcached 實例的當前統計數據。
STAT pid 22459 進程ID
STAT uptime 1027046 服務器運行秒數
STAT time 1273043062 服務器當前unix時間戳
STAT version 1.4.4 服務器版本
STAT pointer_size 64 操作系統字大小(這台服務器是64位的)
STAT rusage_user 0.040000 進程累計用戶時間
STAT rusage_system 0.260000 進程累計系統時間
STAT curr_connections 10 當前打開連接數
STAT total_connections 82 曾打開的連接總數
STAT connection_structures 13 服務器分配的連接結構數
STAT cmd_get 54 執行get命令總數
STAT cmd_set 34 執行set命令總數
STAT cmd_flush 3 指向flush_all命令總數
STAT get_hits 9 get命中次數
STAT get_misses 45 get未命中次數
STAT delete_misses 5 delete未命中次數
STAT delete_hits 1 delete命中次數
STAT incr_misses 0 incr未命中次數
STAT incr_hits 0 incr命中次數
STAT decr_misses 0 decr未命中次數
STAT decr_hits 0 decr命中次數
STAT cas_misses 0 cas未命中次數
STAT cas_hits 0 cas命中次數
STAT cas_badval 0 使用擦拭次數
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 15785 讀取字節總數
STAT bytes_written 15222 寫入字節總數
STAT limit_maxbytes 1048576 分配的內存數(字節)
STAT accepting_conns 1 目前接受的鏈接數
STAT listen_disabled_num 0
STAT threads 4 線程數
STAT conn_yields 0
STAT bytes 0 存儲item字節數
STAT curr_items 0 item個數
STAT total_items 34 item總數
STAT evictions 0 為獲取空間刪除item的總數
二、數據存儲命令
1、 set 命令
set的命令在memcached中的使用頻率極高。set命令不但可以簡單添加,如果set的key已經存在,該命令可以更新該key所對應的原來的數據,也就是實現更新的作用。
實例:set username 0 0 8。
注意一點就是:如果設定存儲字節數為8的話,那么在輸入的存在內容時,內容大小必須是8個字節,否則存儲不成功。
2、 add 命令
add命令使用方法與set完全一致,區別是只有數據不存在時進行添加的add,如果已經存在一個key為username的數據,add不成功。
3、 replace 命令
replace命令使用方法與set完全一致,區別是只有數據存在時才能進行數據更新,如果replace一個不存在的key的數據,則replace不成功。與add命令相反。
三、數據讀取命令
1、 get命令
get空格key 可以獲取指定key的數據。多個key可以用空格隔開
2、 gets命令
可以看到,gets命令比普通的get命令多返回了一個數字(上圖中為13)。這個數字可以檢查數據是否發生改變。當key對應的數據改變時,這個多返回的數字也會改變。這個數字類似於svn中的版本號。
四、數據刪除命令
1、 delete命令
刪除已存在的鍵值和不存在的記錄可以返回不同的結果。
java操作memcached工具介紹
java客戶端操作memcached服務器的常用工具有:memcached client for java 和spymemcached。比較常用的就是memcached client for java。目前項目中使用的是memcached client for java。