memcache的基本操作


1、linux下啟動memcache

[root@localhost ~]# memcached -d -m 512  -u root  -p 12266 -c 256

參數名稱及意義:

-d   以守護進程方式啟動。如果該參數沒有指定,當按ctrl+c命令結束,memcache自動關閉

-m  分配給memcache使用的最大內存數 單位是m,默認是64m

-u   指定運行memcache的用戶

-l:   指定監聽的ip地址

-p   指定監聽的tcp端口號,可以通過-u指定udp端口.默認是11211

-c   最大並發連接數

-P   報錯進程id的文件

2、連接memcache

linux下一般使用telnet連接memcache服務,如下:

[root@localhost ~]# telnet 127.0.0.1 11266 

3、基本操作

添加修改key-value,命令格式:

<command> <key> <flags> <exptime> <bytes>\r\n

參數名稱及意義:

command   add, set或 replace

key            緩存的名字

flag           16位無符號整數,和key要存儲的數據一起存儲,並在程序get緩存時,返回。

exptime     過期時間,0 表示永遠不過期,如果非零,表示unix時間或距此秒數

bytes         存儲數據的字節數

\r\n           表示換行回車

【補充】

key:學過計算機基礎和學過計算機數據庫結構的人都知道,計算機有個比較常用的結構叫hash,這是數據結構中最重要的數據結構。key和value就是通過hash,hash有一個自己獨造的函數,通過key計算某個固定的值,將value存到這個key計算的固定的值里面,當我們通過get取得時候,通過key我們就可以很快的在內存中找到我們當時存的key所對應的value的值,所以速度非常快;

flag:memcache 基於簡單的文本協議,傳輸的東西,理解成字符串來存儲,有經驗的同學會將array() object() 轉成json_encode()這個字符串,存到 memcached里邊。那怎么來區分當時是存的是字符串還是array()或object()呢?這就是flag的意義。

   例子:

      add title 1 0 16

      welcome to maizi

      Stored

 expire:設置緩存的有效期。它有三種方式:

              1)設置它的秒數,從當前的時間算起,到第n秒失效。比如失效時間是10秒,就是從當前的時間算,過來10秒你再去get這個web的時候,它是沒有的。

              2)使用時間戳的方式,就是指定明天某個時候失效,這個場景主要運用於搶購,如搶購手機,希望明天的這個時候緩存失效,可以從相關網站獲得時間戳信息如下。

                    

               3)將expire設置為0,設置為0后就不自動失效,有的人以為這個是一個永久數據,這種理解是錯誤的。這里說一種極端的方式,比如memcache掛了,再重啟memcache服務,但這里面的數據就都不會存在                        了。我們在編譯memcache的時候,使用了一個最長的常量,默認時間為30天,所以即使你設置為0,30天以后,它的數據也會失效。還有一種情況是可能我等不到這30天,就會被新的數據擠出去,這個就                      是老數據被踢的這個現象。

命令結果:

STORED #表示成功

NOT_STORED  #表示失敗

CLIENT_ERROR bad data chunk  #輸入數據有誤

添加緩存:

add kk 1 0 4  #回車
1234  #回車
STORED 

如果key已經存在,則會添加失敗。如果數據 不是4個字節 應該會提示數據錯誤。

修改緩存:

replace kk 1 0 2  #回車
11  #回車
STORED  

key存在時,成功;不存在時,失敗。

設置緩存:

set kk 1 0 4  #回車
1234 #回車
STORED  

key不存在時,添加【add】;已存在時,替換【replace】。

讀取:

get kk
VALUE kk 1 4
1234

多個key時,用空格隔開。

刪除:

delete kk #回車
DELETED

清空所有緩存:

flush_all  
OK

查看緩存服務器狀態:

stats

image

image

其他命令:

version  #顯示版本號
stats reset #清空統計數據
stats slabs #顯示各個slab的信息,包括chunk的大小、數目、使用情況等
stats items  #顯示各個slab中item的數目和存儲時長(最后一次訪問距離現在的秒數)

退出telnet:

ctrl+]
tlenet>quit


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM