TairString簡介
Redis的String僅由key和value組成,而TairString不僅包含key和value,還攜帶了版本(version),可用於樂觀鎖等情境。除此之外,TairString在Redis String加減功能的基礎上支援了邊界設定,可以將INCRBY、INCRBYFLOAT的結果限制在一定的範圍內,超出範圍則提示錯誤。
主要特性
該Module已開源,更多資訊請參見TairString。
前提條件
執行個體為Tair記憶體型或持久記憶體型(小版本為1.2.3及以上)。
說明 最新小版本將提供更豐富的功能與穩定的服務,建議將執行個體的小版本升級到最新,具體操作請參見升級小版本。如果您的執行個體為叢集執行個體或讀寫分離架構,請將代理節點的小版本也升級到最新,否則可能出現命令無法識別的情況。
注意事項
本文的操作對象為Tair執行個體中的TairString資料。
說明 Tair執行個體中可同時設定Redis String(即Redis原生String)和TairString,本文的命令無法對Redis String使用。
命令列表
表 1. TairString命令
命令 | 文法 | 簡介 |
EXSET | EXSET key value [EX|PX|EXAT|PXAT time] [NX|XX] [VER|ABS version] [KEEPTTL]
| 若key不存在,則建立新的key,並將value儲存到key中;若key已存在,則覆蓋原來value的值。 |
EXGET | EXGET key
| 擷取TairString的value和version。 |
EXSETVER | EXSETVER key version
| 設定目標key的version。 |
EXINCRBY | EXINCRBY key num [EX|PX|EXAT|PXAT time] [NX|XX] [VER|ABS version] [MIN minval] [MAX maxval] [KEEPTTL]
| 對TairString的value進行自增自減操作,num的範圍為long。 |
EXINCRBYFLOAT | EXINCRBYFLOAT key num [EX|PX|EXAT|PXAT time] [NX|XX] [VER|ABS version] [MIN minval] [MAX maxval] [KEEPTTL]
| 對TairString的value進行自增自減操作,num的範圍為double。 |
EXCAS | EXCAS key newvalue version
| 當目標key的version值與指定的version相等時,則更新key的value值;version不相等,則返回舊的value和version。 |
EXCAD | EXCAD key version
| 當目標key的version值與指定的version相等時,則刪除Key。 |
DEL | DEL key [key ...]
| 使用原生Redis的DEL命令可以刪除一條或多條TairString資料。 |
EXSET
類別 | 說明 |
文法 | EXSET key value [EX|PX|EXAT|PXAT time] [NX|XX] [VER|ABS version] [KEEPTTL]
|
時間複雜度
| O(1) |
命令描述 | 若key不存在,則建立新的key,並將value儲存到key中;若key已存在,則覆蓋原來value的值。 |
選項 | Key:TairString的key,用於指定作為命令調用對象的TairString。 value:為key設定的value。 EX:指定key的相對到期時間,單位為秒,為0表示馬上到期,不傳此參數表示不到期。 EXAT:指定key的絕對到期時間,單位為秒,為0表示馬上到期,不傳此參數表示不到期。 PX:指定key的相對到期時間,單位為毫秒,為0表示馬上到期,不傳此參數表示不到期。 PXAT:指定key的絕對到期時間,單位為毫秒 ,為0表示馬上到期,不傳此參數表示不到期。 NX:只在key不存在時寫入。 XX:只在key存在時寫入。 VER:版本號碼。 ABS:絕對版本號碼。設定後,無論key當前的版本號碼是多少,完成寫入並將key的版本號碼覆蓋為該選項中設定的值。 KEEPTTL:延用該key原本設定的到期時間(Time to live,TTL資訊),該參數不能與EX、PX、EXAT、PXAT參數同時設定。
說明 若未設定KEEPTTL參數,也未設定EX、PX等設定到期時間的參數,則該key的到期時間將被刪除,即表示該key不會到期。
|
傳回值 | 執行成功:OK。 指定了XX且key不存在:nil。 指定了NX且key已經存在:nil。 其它情況返回相應的異常資訊。
|
樣本 | 命令樣本: EXSET foo bar EX 10 NX ABS 100
返回樣本: OK
|
EXGET
類別 | 說明 |
文法 | EXGET key
|
時間複雜度 | O(1) |
命令描述 | 擷取TairString的value和version。 |
選項 | |
傳回值 | 執行成功:value與version。 其它情況返回相應的異常資訊。
|
樣本 | 命令樣本: EXGET foo
返回樣本: 1) "bar"
2) (integer) 1
|
EXSETVER
類別 | 說明 |
文法 | EXSETVER key version
|
時間複雜度 | O(1) |
命令描述 | 設定目標key的version。 |
選項 | |
傳回值 | 執行成功:1。 若key不存在:0。 其它情況返回相應的異常資訊。
|
樣本 | 命令樣本: EXSETVER foo 2
返回樣本: (integer) 1
|
EXINCRBY
類別 | 說明 |
文法 | EXINCRBY key num [EX|PX|EXAT|PXAT time] [NX|XX] [VER|ABS version] [MIN minval] [MAX maxval] [KEEPTTL]
|
時間複雜度 | O(1) |
命令描述 | 對TairString的value進行自增自減操作,num的範圍為long。 |
選項 | Key:TairString的key,用於指定作為命令調用對象的TairString。 num:TairString進行自增自減操作的數值,必須為整數。 EX:指定key的相對到期時間,單位為秒,為0表示馬上到期,不傳此參數表示不到期。 EXAT:指定key的絕對到期時間,單位為秒,為0表示馬上到期,不傳此參數表示不到期。 PX:指定key的相對到期時間,單位為毫秒,為0表示馬上到期,不傳此參數表示不到期。 PXAT:指定key的絕對到期時間,單位為毫秒 ,為0表示馬上到期,不傳此參數表示不到期。 NX:只在key不存在時寫入。 XX:只在key存在時寫入。 VER:版本號碼。 ABS:絕對版本號碼。設定後,無論key當前的版本號碼是多少,完成寫入並將key的版本號碼覆蓋為該選項中設定的值。 MIN:設定TairString value的最小值。 MAX:設定TairString value的最大值。 KEEPTTL:延用該key原本設定的到期時間,該參數不能與EX、PX、EXAT、PXAT參數同時設定。
說明 若未設定KEEPTTL參數,也未設定EX、PX等設定到期時間的參數,則該key的到期時間將被刪除,即表示該key不會到期。
|
傳回值 | |
樣本 | 提前執行EXSET foo 1 命令。 命令樣本: EXINCRBY foo 100 MAX 300
返回樣本: (integer) 101
|
EXINCRBYFLOAT
類別 | 說明 |
文法 | EXINCRBYFLOAT key num [EX|PX|EXAT|PXAT time] [NX|XX] [VER|ABS version] [MIN minval] [MAX maxval] [KEEPTTL]
|
時間複雜度 | O(1) |
命令描述 | 對TairString的value進行自增自減操作,num的範圍為double。 |
選項 | Key:TairString的key,用於指定作為命令調用對象的TairString。 num:TairString進行自增自減操作的數值,類型為浮點數。 EX:指定key的相對到期時間,單位為秒,為0表示馬上到期,不傳此參數表示不到期。 EXAT:指定key的絕對到期時間,單位為秒,為0表示馬上到期,不傳此參數表示不到期。 PX:指定key的相對到期時間,單位為毫秒,為0表示馬上到期,不傳此參數表示不到期。 PXAT:指定key的絕對到期時間,單位為毫秒 ,為0表示馬上到期,不傳此參數表示不到期。 NX:只在key不存在時寫入。 XX:只在key存在時寫入。 VER:版本號碼。 ABS:絕對版本號碼。設定後,無論key當前的版本號碼是多少,完成寫入並將key的版本號碼覆蓋為該選項中設定的值。 MIN:設定TairString value的最小值。 MAX:設定TairString value的最大值。 KEEPTTL:延用該key原本設定的到期時間,該參數不能與EX、PX、EXAT、PXAT參數同時設定。
說明 若未設定KEEPTTL參數,也未設定EX、PX等設定到期時間的參數,則該key的到期時間將被刪除,即表示該key不會到期。
|
傳回值 | |
樣本 | 提前執行EXSET foo 1 命令。 命令樣本: EXINCRBYFLOAT foo 10.123
返回樣本: (integer) 11.123
|
EXCAS
類別 | 說明 |
文法 | EXCAS key newvalue version
|
時間複雜度 | O(1) |
命令描述 | 當目標key的version值與指定的version相等時,則更新key的value值;version不相等,則返回舊的value和version。 |
選項 | Key:TairString的key,用於指定作為命令調用對象的TairString。 newvalue:若key的version值與指定的version相等,將value修改為newvalue。 version:用於跟key的現有version值比較的值。
|
傳回值 | 執行成功:["OK", "",最新的version]。中間的""為無意義的Null 字元串。 執行失敗:["ERR update version is stale", value, version]。value和version為key當前的value和版本。 若key不存在:-1。 其它情況返回相應的異常資訊。
|
樣本 | 提前執行EXSET foo bar 命令。 命令樣本: EXCAS foo bzz 1
返回樣本: 1) OK
2)
3) (integer) 2
|
EXCAD
類別 | 說明 |
文法 | EXCAD key version
|
時間複雜度 | O(1) |
命令描述 | 當目標key的version值與指定的version相等時,則刪除Key。 |
選項 | |
傳回值 | 執行成功:1。 執行失敗:0。 若key不存在:-1。 其它情況返回相應的異常資訊。
|
樣本 | 提前執行EXSET foo bar 命令。 命令樣本: EXCAD foo 1
返回樣本: (integer) 1
|