Memcached CAS(Check-And-Set 或 Compare-And-Swap) 命令用於執行一個"檢查並設置"的操作

它僅在當前客戶端最後一次取值後,該key 對應的值沒有被其他客戶端修改的情況下, 才能夠將值寫入。

檢查是通過cas_token參數進行的, 這個參數是Memcach指定給已經存在的元素的一個唯一的64位值。

語法:

CAS 命令的基本語法格式如下:

cas key flags exptime bytes unique_cas_token [noreply]value

參數說明如下:

key:鍵值 key-value 結構中的 key,用於查找緩存值。flags:可以包括鍵值對的整型參數,客戶機使用它存儲關於鍵值對的額外信息 。exptime:在緩存中保存鍵值對的時間長度(以秒爲單位,0 表示永遠)bytes:在緩存中存儲的字節數unique_cas_token通過 gets 命令獲取的一個唯一的64位值。noreply(可選): 該參數告知服務器不需要返回數據value:存儲的值(始終位於第二行)(可直接理解爲key-value結構中的value)

實例

要在 Memcached 上使用 CAS 命令,你需要從 Memcached 服務商通過 gets 命令獲取令牌(token)。

gets 命令的功能類似於基本的 get 命令。兩個命令之間的差異在於,gets 返回的信息稍微多一些:64 位的整型值非常像名稱/值對的 "版本" 標識符。

實例步驟如下:

如果沒有設置唯一令牌,則 CAS 命令執行錯誤。如果鍵 key 不存在,執行失敗。添加鍵值對。通過 gets 命令獲取唯一令牌。使用 cas 命令更新數據使用 get 命令查看數據是否更新

cas tp 0 900 9ERROR 輸出如果數據添加成功,則輸出:STORED輸出信息說明:

STORED:保存成功後輸出。ERROR:保存出錯或語法錯誤。EXISTS:在最後一次取值後另外一個用戶也在更新該數據。NOT_FOUND:Memcached 服務上不存在該鍵值。

查看原文 >>
相關文章