Memcached总结
生活随笔
收集整理的這篇文章主要介紹了
Memcached总结
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、介紹
Memcached是一個(gè)自由開(kāi)源的,高性能,分布式內(nèi)存對(duì)象緩存系統(tǒng)。
Memcached是一種基于內(nèi)存的key-value存儲(chǔ),用來(lái)存儲(chǔ)小塊的任意數(shù)據(jù)(字符串、對(duì)象)。
目的:通過(guò)緩存數(shù)據(jù)庫(kù)查詢結(jié)果,減少數(shù)據(jù)庫(kù)訪問(wèn)次數(shù),以提高動(dòng)態(tài)Web應(yīng)用的速度、提高可擴(kuò)展性。
二、命令
(1)存儲(chǔ)命令
#(1)Set #set 命令用于將 value(數(shù)據(jù)值) 存儲(chǔ)在指定的 key(鍵) 中 #如果set的key已經(jīng)存在,該命令可以更新該key所對(duì)應(yīng)的原來(lái)的數(shù)據(jù),也就是實(shí)現(xiàn)更新的作用 set key flags exptime bytes [noreply] value #輸出 STORED:保存成功后輸出。 ERROR:在保存失敗后輸出。#(2)Add #add 命令用于將 value(數(shù)據(jù)值) 存儲(chǔ)在指定的 key(鍵) 中 #如果 add 的 key 已經(jīng)存在,則不會(huì)更新數(shù)據(jù)(過(guò)期的 key 會(huì)更新),之前的值將仍然保持相同,并且您將獲得響應(yīng) NOT_STORED add key flags exptime bytes [noreply] value#輸出 STORED:保存成功后輸出。 NOT_STORED :在保存失敗后輸出。#(3)Replace #replace 命令用于替換已存在的 key(鍵) 的 value(數(shù)據(jù)值) #如果 key 不存在,則替換失敗,并且您將獲得響應(yīng) NOT_STORED replace key flags exptime bytes [noreply] value#輸出 STORED:保存成功后輸出。 NOT_STORED:執(zhí)行替換失敗后輸出。#(4)Append #append 命令用于向已存在 key(鍵) 的 value(數(shù)據(jù)值) 后面追加數(shù)據(jù) append key flags exptime appendBytes [noreply] value#輸出 STORED:保存成功后輸出。 NOT_STORED:該鍵在 Memcached 上不存在。 CLIENT_ERROR:執(zhí)行錯(cuò)誤。#(4)Prepend #prepend 命令用于向已存在 key(鍵) 的 value(數(shù)據(jù)值) 前面追加數(shù)據(jù) prepend key flags exptime bytes [noreply] value#輸出 STORED:保存成功后輸出。 NOT_STORED:該鍵在 Memcached 上不存在。 CLIENT_ERROR:執(zhí)行錯(cuò)誤。#(5)CAS #CAS(Check-And-Set 或 Compare-And-Swap) 命令用于執(zhí)行一個(gè)"檢查并設(shè)置"的操作 #它僅在當(dāng)前客戶端最后一次取值后,該key 對(duì)應(yīng)的值沒(méi)有被其他客戶端修改的情況下, 才能夠?qū)⒅祵?xiě)入 #檢查是通過(guò)cas_token(gets指令獲取)參數(shù)進(jìn)行的, 這個(gè)參數(shù)是Memcach指定給已經(jīng)存在的元素的一個(gè)唯一的64位值 cas key flags exptime bytes unique_cas_token [noreply] value#輸出 STORED:保存成功后輸出。 ERROR:保存出錯(cuò)或語(yǔ)法錯(cuò)誤。 EXISTS:在最后一次取值后另外一個(gè)用戶也在更新該數(shù)據(jù)。 NOT_FOUND:Memcached 服務(wù)上不存在該鍵值。(2)查找命令
#(1)Get #get 命令獲取存儲(chǔ)在 key(鍵) 中的 value(數(shù)據(jù)值) ,如果 key 不存在,則返回空 get key1 [key2 key3 ...]#輸出 VALUE key flags bytes value END#(2)Gets #gets 命令獲取帶有 CAS 令牌存 的 value(數(shù)據(jù)值) ,如果 key 不存在,則返回空 gets key1 [key2 key3 ...]#輸出 VALUE key flags bytes cas value END#(3)Delete #delete 命令用于刪除已存在的 key(鍵) delete key [noreply]#輸出 DELETED:刪除成功。 ERROR:語(yǔ)法錯(cuò)誤或刪除失敗。 NOT_FOUND:key 不存在。#(4)Incr Decr #incr 與 decr 命令用于對(duì)已存在的 key(鍵) 的數(shù)字值進(jìn)行自增或自減操作 #incr 與 decr 命令操作的數(shù)據(jù)必須是十進(jìn)制的32位無(wú)符號(hào)整數(shù) #如果 key 不存在返回 NOT_FOUND,如果鍵的值不為數(shù)字,則返回 CLIENT_ERROR,其他錯(cuò)誤返回 ERROR incr key increment_value decr key decrement_value#輸出 NOT_FOUND:key 不存在。 CLIENT_ERROR:自增值不是對(duì)象。 ERROR其他錯(cuò)誤,如語(yǔ)法錯(cuò)誤等。(3)統(tǒng)計(jì)命令
#(1)stats #stats 命令用于返回統(tǒng)計(jì)信息例如 PID(進(jìn)程號(hào))、版本號(hào)、連接數(shù)等 stats#輸出 STAT pid xxx ... Endpid: memcache服務(wù)器進(jìn)程ID uptime:服務(wù)器已運(yùn)行秒數(shù) time:服務(wù)器當(dāng)前Unix時(shí)間戳 version:memcache版本 pointer_size:操作系統(tǒng)指針大小 rusage_user:進(jìn)程累計(jì)用戶時(shí)間 rusage_system:進(jìn)程累計(jì)系統(tǒng)時(shí)間 curr_connections:當(dāng)前連接數(shù)量 total_connections:Memcached運(yùn)行以來(lái)連接總數(shù) connection_structures:Memcached分配的連接結(jié)構(gòu)數(shù)量 cmd_get:get命令請(qǐng)求次數(shù) cmd_set:set命令請(qǐng)求次數(shù) cmd_flush:flush命令請(qǐng)求次數(shù) get_hits:get命令命中次數(shù) get_misses:get命令未命中次數(shù) delete_misses:delete命令未命中次數(shù) delete_hits:delete命令命中次數(shù) incr_misses:incr命令未命中次數(shù) incr_hits:incr命令命中次數(shù) decr_misses:decr命令未命中次數(shù) decr_hits:decr命令命中次數(shù) cas_misses:cas命令未命中次數(shù) cas_hits:cas命令命中次數(shù) cas_badval:使用擦拭次數(shù) auth_cmds:認(rèn)證命令處理的次數(shù) auth_errors:認(rèn)證失敗數(shù)目 bytes_read:讀取總字節(jié)數(shù) bytes_written:發(fā)送總字節(jié)數(shù) limit_maxbytes:分配的內(nèi)存總大小(字節(jié)) accepting_conns:服務(wù)器是否達(dá)到過(guò)最大連接(0/1) listen_disabled_num:失效的監(jiān)聽(tīng)數(shù) threads:當(dāng)前線程數(shù) conn_yields:連接操作主動(dòng)放棄數(shù)目 bytes:當(dāng)前存儲(chǔ)占用的字節(jié)數(shù) curr_items:當(dāng)前存儲(chǔ)的數(shù)據(jù)總數(shù) total_items:啟動(dòng)以來(lái)存儲(chǔ)的數(shù)據(jù)總數(shù) evictions:LRU釋放的對(duì)象數(shù)目 reclaimed:已過(guò)期的數(shù)據(jù)條目來(lái)存儲(chǔ)新數(shù)據(jù)的數(shù)目 #(2)stats #stats items 命令用于顯示各個(gè) slab 中 item 的數(shù)目和存儲(chǔ)時(shí)長(zhǎng)(最后一次訪問(wèn)距離現(xiàn)在的秒數(shù)) stats items#輸出: STAT items:slab_id:number xx STAT items:slab_id:age xx STAT items:slab_id:evicted xx STAT items:slab_id:evicted_nonzero xx STAT items:slab_id:evicted_time xx STAT items:slab_id:outofmemory xx STAT items:slab_id:tailrepairs xx STAT items:slab_id:reclaimed xx STAT items:slab_id:expired_unfetched xx STAT items:slab_id:evicted_unfetched xx ... slab_id_n ... END #(3)stats slabs #stats slabs 命令用于顯示各個(gè)slab的信息,包括chunk的大小、數(shù)目、使用情況等 stats slabs#輸出 STAT slab_id:chunk_size xx STAT slab_id:chunks_per_page xx STAT slab_id:total_pages xx STAT slab_id:total_chunks xx STAT slab_id:used_chunks xx STAT slab_id:free_chunks xx STAT slab_id:free_chunks_end xx STAT slab_id:mem_requested xx STAT slab_id:get_hits xx STAT slab_id:cmd_set xx STAT slab_id:delete_hits xx STAT slab_id:incr_hits xx STAT slab_id:decr_hits xx STAT slab_id:cas_hits xx STAT slab_id:cas_badval xx STAT slab_id:touch_hits xx ... slab_id_n ... STAT active_slabs xx STAT total_malloced xx #(4)stats sizes #stats sizes 命令用于顯示所有item的大小和個(gè)數(shù)。 #該信息返回兩列,第一列是 item 的大小,第二列是 item 的個(gè)數(shù)。 stats sizesSTAT item_size item_count END #(5)flush_all # flush_all 命令用于清理緩存中的所有 key=>value(鍵=>值) 對(duì)。 #該命令提供了一個(gè)可選參數(shù) time,用于在制定的時(shí)間后執(zhí)行清理緩存操作。 flush_all [time] [noreply] #(6)stats cachedump #slab id的緩存轉(zhuǎn)儲(chǔ),并限制要轉(zhuǎn)儲(chǔ)的最大鍵數(shù)。作為遍歷單個(gè)slab的所有key stats cachedump slab_id key_size總結(jié)
以上是生活随笔為你收集整理的Memcached总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: HighChart模拟点击series的
- 下一篇: Memcached:列出所有Key