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]。中間的""為無意義的空字符串。 執行失敗:["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
|