1. 程式人生 > 其它 >Memcached:04---基礎命令(get、gets、delete、incr、decr、flush_all)

Memcached:04---基礎命令(get、gets、delete、incr、decr、flush_all)

技術標籤: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