新聞中心
Memcached CAS 命令
Memcached CAS(Check-And-Set 或 Compare-And-Swap) 命令用于執(zhí)行一個(gè)"檢查并設(shè)置"的操作

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請(qǐng)域名、雅安服務(wù)器托管、營(yíng)銷軟件、網(wǎng)站建設(shè)、延川網(wǎng)站維護(hù)、網(wǎng)站推廣。
它僅在當(dāng)前客戶端最后一次取值后,該key 對(duì)應(yīng)的值沒有被其他客戶端修改的情況下, 才能夠?qū)⒅祵懭搿?/p>
檢查是通過cas_token參數(shù)進(jìn)行的, 這個(gè)參數(shù)是Memcach指定給已經(jīng)存在的元素的一個(gè)唯一的64位值。
語法:
CAS 命令的基本語法格式如下:
cas key flags exptime bytes unique_cas_token [noreply] value
參數(shù)說明如下:
- key:鍵值 key-value 結(jié)構(gòu)中的 key,用于查找緩存值。
- flags:可以包括鍵值對(duì)的整型參數(shù),客戶機(jī)使用它存儲(chǔ)關(guān)于鍵值對(duì)的額外信息 。
- exptime:在緩存中保存鍵值對(duì)的時(shí)間長(zhǎng)度(以秒為單位,0 表示永遠(yuǎn))
- bytes:在緩存中存儲(chǔ)的字節(jié)數(shù)
- unique_cas_token通過 gets 命令獲取的一個(gè)唯一的64位值。
- noreply(可選): 該參數(shù)告知服務(wù)器不需要返回?cái)?shù)據(jù)
- value:存儲(chǔ)的值(始終位于第二行)(可直接理解為key-value結(jié)構(gòu)中的value)
實(shí)例
要在 Memcached 上使用 CAS 命令,你需要從 Memcached 服務(wù)商通過 gets 命令獲取令牌(token)。
gets 命令的功能類似于基本的 get 命令。兩個(gè)命令之間的差異在于,gets 返回的信息稍微多一些:64 位的整型值非常像名稱/值對(duì)的 "版本" 標(biāo)識(shí)符。
實(shí)例步驟如下:
- 如果沒有設(shè)置唯一令牌,則 CAS 命令執(zhí)行錯(cuò)誤。
- 如果鍵 key 不存在,執(zhí)行失敗。
- 添加鍵值對(duì)。
- 通過 gets 命令獲取唯一令牌。
- 使用 cas 命令更新數(shù)據(jù)
- 使用 get 命令查看數(shù)據(jù)是否更新
cas tp 0 900 9 ERROR 缺少 token cas tp 0 900 9 2 memcached NOT_FOUND 鍵 tp 不存在 set tp 0 900 9 memcached STORED gets tp VALUE tp 0 9 1 memcached END cas tp 0 900 5 1 redis STORED get tp VALUE tp 0 5 redis END
輸出
如果數(shù)據(jù)添加成功,則輸出:
STORED
輸出信息說明:
- STORED:保存成功后輸出。
- ERROR:保存出錯(cuò)或語法錯(cuò)誤。
- EXISTS:在最后一次取值后另外一個(gè)用戶也在更新該數(shù)據(jù)。
- NOT_FOUND:Memcached 服務(wù)上不存在該鍵值。
當(dāng)前名稱:創(chuàng)新互聯(lián)Memcached教程:MemcachedCAS命令
瀏覽路徑:http://m.fisionsoft.com.cn/article/dphjpoe.html


咨詢
建站咨詢
