Memcached:04---基礎命令(get、gets、delete、incr、decr、flush_all)
阿新 • • 發佈:2021-02-12
技術標籤:Memcached
一、get
- get命令獲取儲存在key(鍵)中的value(資料值)。
- 如果key不存在,則返回空。
格式
- 基本語法格式如下:
get key
- 多個key使用空格隔開,如下:
get key1 key2 key3
演示案例
- 設定一個key,如下所示:
set runoob 0 900 9 memcached
- 獲取該key的值:
get runoob
二、gets
- gets 命令獲取帶有CAS令牌的value(資料值)。
- 如果key不存在,則返回空。
格式
- 基本語法格式如下:
gets key
- 多個key使用空格隔開,如下:
gets key1 key2 key3
演示案例
- 設定一個key,如下所示:
set runoob 0 900 9 memcached
- 獲取該key的cas_token引數,值為19
gets runoob
三、delete
- delete命令用於刪除已存在的key(鍵)。
格式
delete key [noreply]
- 引數說明如下:
- key:鍵值 key-value 結構中的key,用於查詢快取值。
- noreply(可選):該引數告知伺服器不需要返回資料。
輸出資訊
- DELETED:刪除成功。
- ERROR:語法錯誤或刪除失敗。
- NOT_FOUND:key 不存在。
演示案例
- 設定一個名為runoob的key:
set runoob 0 900 9 memcached
- 獲取key的內容:
get runoob
- 刪除該key:
delete runoob
- 再次獲取key:
get runoob
- 再次刪除該key
delete runoob
四、incr、decr
- incr與decr命令用於對已存在的 key(鍵) 的數字值進行自增或自減操作。
- incr與decr命令操作的資料必須是十進位制的32位無符號整數。
incr格式
incr key increment_value
- 引數說明如下:
- key:鍵值 key-value 結構中的 key,用於查詢快取值。
- increment_value: 增加的數值。
演示案例
- 設定一個key,值為10:
set visitors 0 900 2 10
- 獲取key的值:
get visitors
- 將key的值增加5:
incr visitors 5
- 再次獲取key的值:
get visitors
decr格式
decr key decrement_value
- 引數說明如下
- key:鍵值 key-value 結構中的 key,用於查詢快取值。
- decrement_value: 減少的數值。
演示案例
- 設定一個key,值為10:
set visitors 0 900 2 10
- 獲取key的值:
get visitors
- 將key的值減去5:
decr visitors 5
- 再次獲取key的值:
get visitors
輸出資訊
- NOT_FOUND:key 不存在。
- CLIENT_ERROR:自增/自減值不是物件。
- ERROR:其他錯誤,如語法錯誤等。
應用場景(秒殺功能)
- 一個人下單,要牽涉資料庫讀取,寫入訂單,更改庫存,及事務要求,對於傳統型資料庫來說,壓力是巨大的。可以利用 memcached 的 incr/decr 功能,在記憶體儲存 count 庫存量,秒殺 1000 臺 每人搶單主要在記憶體操作,速度非常快,搶到 count<=1000 的號人,得一個訂單號,再去另一個頁面慢慢支付
五、flush_all
- flush_all命令用於清理快取中的所有key-value(鍵-值)對。
格式
flush_all [time] [noreply]
- 該命令提供了一個可選引數time,用於在指定的時間後執行清理快取操作。
演示案例
- 設定一個key:
set runoob 0 900 9 memcached
- 檢視key:
get runoob
- 清空所有的內容:
flush_all
- 再次檢視:
get runoob