memcache的基本操做

一、linux下啓動memcache

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

參數名稱及意義:linux

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

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

-u   指定運行memcache的用戶json

-l:   指定監聽的ip地址緩存

-p   指定監聽的tcp端口號,能夠經過-u指定udp端口.默認是11211服務器

-c   最大併發鏈接數數據結構

-P   報錯進程id的文件併發

二、鏈接memcache

linux下通常使用telnet鏈接memcache服務,以下:tcp

[root@localhost ~]# telnet 127.0.0.1 11266 

三、基本操做

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

<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
相關文章
相關標籤/搜索