Memcached基礎語法

Memcached基礎

memcached中的一些參數限制

Key的長度:250字節(二進制協議支持65536個字節)

Value的限制:1M,一般都是存儲一些文本,如新聞列表等等這個值足夠了

內存的限制:32位下最大設置到2G

如果有30G數據要緩存,一般也不會單實例裝30G(不要把雞蛋裝在一個籃子裏)

一般建議 開啓多個實例(可以在不同的機器,或者同機器不同端口多開幾個)

增:add往內存增加一行新記錄

語法:add key flag expire length

  • Key 給值起一個獨特的名字
  • Flag 標誌,要求爲一個正整數
  • Expire 有效期
  • Length 緩存的長度(字節爲單位)

Flag的意義:

Memcached基本文本協議,傳輸的東西,理解成字符串來存儲

想讓你存一個Php對象和一個Php數組怎麼辦?

答:序列化成字符串,往出取的時候,自然還要反序列成對象/數組/json格式等等

這時候flag的意義就體現出來了

比如:1、就是字符串 2、反轉成數組 3、反序列化對象...

Expire的意義:

設置緩存的有效期有3種格式

1、設置秒數,從設定開始數,第N秒後失效

2、時間戳,到指定的時間戳後失效

比如在團購網站緩存的某團到中午12:00失效

3、設爲0,不自動失效

但是設置爲0不是永久有效的,編譯memcached時,指定一個最長常量默認是30天,所以,即使設爲0,30天后也會失效

可能等不到30天,就會被新數據擠出去

 

Replace替換

Replace key flag expire length

參數和add完全一樣,不單獨寫

 

Delete刪除

Delete key 

Delete key [time seconds]

加秒數之後,是指,被刪除的key,N秒內不能再用,目的是讓網站上的頁面緩存也代謝完畢

 

Get查詢

get key

返回key的值

 

Set是設置和修改值

參數和add,replace一樣,但功能不一樣

 

add 是在Key不存在時,才能建立此鍵值

對於已經存在的鍵,可以用replace進行替換/更改

replace則只能對於已經存在的鍵做修改,不存在則不成功

set相當於add replace兩者功能

 

Incr增長

incr age 1

年齡這個鍵的值增長1

 

Decr減少

decr age 2

年齡這個鍵的值減少2

應用場景

秒殺功能:

一個人下單,要牽涉數據庫讀取,寫入訂單,更改庫存,及事務要求,對於傳統型數據庫來說。壓力是巨大的

可以利用memcached的decr功能,在內存存儲count庫存量,秒殺1000臺

set count 0 0 3
1000
decr count 1

最後到了0,就不能搶了

每個人搶單主要在內存操作,速度非常快

搶到count小於等於1000號的人,得到訂單號,再去另外一個頁面進行支付

 

stats

統計所有信息

 

flush_all

清空所有存儲的對象

(惰性刪除)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章