日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

TairString(exString)是一種帶版本號的String類型數據結構,本文介紹TairString數據支持的命令。

TairString簡介

Redis的String僅由key和value組成,而TairString不僅包含key和value,還攜帶了版本(version),可用于樂觀鎖等場景。除此之外,TairString在Redis String加減功能的基礎上支持了邊界設置,可以將INCRBYINCRBYFLOAT的結果限制在一定的范圍內,超出范圍則提示錯誤。

主要特性
  • value攜帶版本號。
  • 使用INCRBY、INCRBYFLOAT遞增數據時可設置變更范圍。

該Module已開源,更多信息請參見TairString

最佳實踐

前提條件

實例為Tair內存型持久內存型(小版本為1.2.3及以上)。

說明 最新小版本將提供更豐富的功能與穩定的服務,建議將實例的小版本升級到最新,具體操作請參見升級小版本。如果您的實例為集群架構讀寫分離架構,請將代理節點的小版本也升級到最新,否則可能出現命令無法識別的情況。

注意事項

本文的操作對象為Tair實例中的TairString數據。

說明 Tair實例中可同時設置Redis String(即Redis原生String)和TairString,本文的命令無法對Redis String使用。

命令列表

表 1. TairString命令
命令語法簡介
EXSETEXSET key value [EX|PX|EXAT|PXAT time] [NX|XX] [VER|ABS version] [KEEPTTL]

若key不存在,則創建新的key,并將value保存到key中;若key已存在,則覆蓋原來value的值。

EXGETEXGET key

獲取TairString的value和version。

EXSETVEREXSETVER key version

設置目標key的version。

EXINCRBYEXINCRBY key num [EX|PX|EXAT|PXAT time] [NX|XX] [VER|ABS version] [MIN minval] [MAX maxval] [KEEPTTL]

對TairString的value進行自增自減操作,num的范圍為long。

EXINCRBYFLOATEXINCRBYFLOAT key num [EX|PX|EXAT|PXAT time] [NX|XX] [VER|ABS version] [MIN minval] [MAX maxval] [KEEPTTL]

對TairString的value進行自增自減操作,num的范圍為double。

EXCASEXCAS key newvalue version

當目標key的version值與指定的version相等時,則更新key的value值;version不相等,則返回舊的value和version。

EXCADEXCAD key version

當目標key的version值與指定的version相等時,則刪除Key。

DELDEL key [key ...]使用原生Redis的DEL命令可以刪除一條或多條TairString數據。
說明 本文的命令語法定義如下:
  • 大寫關鍵字:命令關鍵字。
  • 斜體:變量。
  • [options]:可選參數,不在括號中的參數為必選。
  • A|B:該組參數互斥,請進行二選一或多選一。
  • ...:前面的內容可重復。

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:版本號。
    • 如果key存在,和當前版本號做比較:
      • 如果相等,寫入,且版本號加1。
      • 如果不相等,返回異常。
    • 如果key不存在或者key當前版本為0,忽略傳入的版本號直接設置value,成功后版本號變為1。
  • ABS:絕對版本號。設置后,無論key當前的版本號是多少,完成寫入并將key的版本號覆蓋為該選項中設置的值。
  • KEEPTTL:延用該key原本設置的過期時間(Time to live,TTL信息),該參數不能與EX、PXEXATPXAT參數同時設置。
    說明 若未設置KEEPTTL參數,也未設置EXPX等設置過期時間的參數,則該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。

選項
  • Key:TairString的key,用于指定作為命令調用對象的TairString。
返回值
  • 執行成功:value與version。
  • 其它情況返回相應的異常信息。
示例

命令示例:

EXGET foo

返回示例:

1) "bar"
2) (integer) 1

EXSETVER

類別說明
語法EXSETVER key version
時間復雜度O(1)
命令描述

設置目標key的version。

選項
  • Key:TairString的key,用于指定作為命令調用對象的TairString。
  • 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:版本號。
    • 如果key存在,和當前版本號做比較:
      • 如果相等,進行自增,且版本號加1。
      • 如果不相等,返回異常。
    • 如果key不存在或者key當前版本為0,忽略傳入的版本號并進行自增操作,成功后版本號變為1。
  • ABS:絕對版本號。設置后,無論key當前的版本號是多少,完成寫入并將key的版本號覆蓋為該選項中設置的值。
  • MIN:設置TairString value的最小值。
  • MAX:設置TairString value的最大值。
  • KEEPTTL:延用該key原本設置的過期時間,該參數不能與EX、PXEXATPXAT參數同時設置。
    說明 若未設置KEEPTTL參數,也未設置EXPX等設置過期時間的參數,則該key的過期時間將被刪除,即表示該key不會過期。
返回值
  • 執行成功:操作后value的值。
  • 若設置了MAX或MIN,而操作后的value超過了該范圍:(error) ERR increment or decrement would overflow。
  • 其它情況返回相應的異常信息。
示例

提前執行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:版本號。
    • 如果key存在,和當前版本號做比較:
      • 如果相等,進行自增,且版本號加1。
      • 如果不相等,返回異常。
    • 如果key不存在或者key當前版本為0,忽略傳入的版本號并進行自增操作,成功后版本號變為1。
  • ABS:絕對版本號。設置后,無論key當前的版本號是多少,完成寫入并將key的版本號覆蓋為該選項中設置的值。
  • MIN:設置TairString value的最小值。
  • MAX:設置TairString value的最大值。
  • KEEPTTL:延用該key原本設置的過期時間,該參數不能與EX、PX、EXAT、PXAT參數同時設置。
    說明 若未設置KEEPTTL參數,也未設置EX、PX等設置過期時間的參數,則該key的過期時間將被刪除,即表示該key不會過期。
返回值
  • 執行成功:操作后value的值。
  • 若設置了MAX或MIN,而操作后的value超過了該范圍:(error) ERR increment or decrement would overflow。
  • 其它情況返回相應的異常信息。
示例

提前執行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。

選項
  • Key:TairString的key,用于指定作為命令調用對象的TairString。
  • version:用于跟key的現有version值比較的值。
返回值
  • 執行成功:1。
  • 執行失?。?。
  • 若key不存在:-1。
  • 其它情況返回相應的異常信息。
示例

提前執行EXSET foo bar命令。

命令示例:

EXCAD foo 1

返回示例:

(integer) 1