全部產品
Search
文件中心

Tair (Redis® OSS-Compatible):exHash

更新時間:Oct 25, 2024

TairHash(exHash)是一種可為field設定到期時間和版本的Hash類型資料結構,提高了Hash資料結構的靈活性,簡化了很多情境下的業務開發工作。

TairHash簡介

TairHash不但和Redis Hash一樣支援豐富的資料介面和高處理效能,還改變了hash只能為key設定到期時間的限制,可以為field設定到期時間和版本,極大地提高了hash資料結構的靈活性,簡化了很多情境下的業務開發工作。TairHash使用高效的Active Expire演算法,可以在不對回應時間造成明顯影響的前提下,更高效的完成對field的到期判斷和刪除。

主要特徵

  • field支援單獨設定expire和version。

  • field支援高效靈活的主動、被動到期淘汰(expire)策略。

  • 文法和原生Redis Hash資料類型類似。

該Module已開源,更多資訊請參見TairHash

前提條件

執行個體為Tair

說明

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

注意事項

操作對象為Tair執行個體中的TairHash資料。

命令列表

表 1. TairHash命令

命令

文法

說明

EXHSET

EXHSET key field value [EX time] [EXAT time] [PX time] [PXAT time] [NX | XX] [VER | ABS version] [KEEPTTL]

向Key指定的TairHash中插入一個field。如果TairHash不存在則自動建立一個,如果field已經存在則覆蓋其值。

EXHGET

EXHGET key field

擷取key指定的TairHash中一個field的值,如果TairHash不存在或者field不存在,則返回nil。

EXHMSET

EXHMSET key field value [field value ...]

同時向key指定的TairHash中插入多個field,如果TairHash不存在則自動建立一個,如果field已經存在則覆蓋其值。

EXHPEXPIREAT

EXHPEXPIREAT key field milliseconds-timestamp [VER | ABS version]

在key指定的TairHash中為一個field設定絕對到期時間,精確到毫秒。

EXHPEXPIRE

EXHPEXPIRE key field milliseconds [VER | ABS version]

在key指定的TairHash中為一個field設定相對到期時間,單位為毫秒。

EXHEXPIREAT

EXHEXPIREAT key field timestamp [VER | ABS version]

在key指定的TairHash中為一個field設定絕對到期時間,精確到秒。

EXHEXPIRE

EXHEXPIRE key field seconds [VER | ABS version]

在key指定的TairHash中為一個field設定相對到期時間,單位為秒。

EXHPTTL

EXHPTTL key field

查看key指定的TairHash中一個field的剩餘到期時間,結果精確到毫秒。

EXHTTL

EXHTTL key field

查看key指定的TairHash中一個field的到期時間,結果精確到秒。

EXHVER

EXHVER key field

查看key指定的TairHash中一個field的目前的版本號。

EXHSETVER

EXHSETVER key field version

設定key指定的TairHash中一個field的版本號碼。

EXHINCRBY

EXHINCRBY key field num [EX time] [EXAT time] [PX time] [PXAT time] [VER | ABS version] [MIN minval] [MAX maxval] [KEEPTTL]

將key指定的TairHash中一個field的value增加num,num為一個整數。如果TairHash不存在則自動新建立一個,如果指定的field不存在,則在加之前插入該field並將其值設定為0。

說明

為Key的field設定了逾時時間後,再次執行該命令時如果沒有設定逾時時間,該field將被設定為永不到期。

EXHINCRBYFLOAT

EXHINCRBYFLOAT key field num [EX time] [EXAT time] [PX time] [PXAT time] [VER | ABS version] [MIN minval] [MAX maxval] [KEEPTTL]

將key指定的TairHash中一個field的value增加num,num為一個浮點數。如果TairHash不存在則自動新建立一個,如果指定的field不存在,則在加之前插入該field並將其值設定為0。

說明

為Key的field設定了逾時時間後,再次執行該命令時如果沒有設定逾時時間,該field將被設定為永不到期。

EXHGETWITHVER

EXHGETWITHVER key field

同時擷取key指定的TairHash一個field的值和版本,如果TairHash不存在或者field不存在,則返回nil。

EXHMGET

EXHMGET key field [field ...]

同時擷取key指定的TairHash多個field的值,如果TairHash不存在或者field不存在,則返回nil。

EXHMGETWITHVER

EXHMGETWITHVER key field [field ...]

同時擷取key指定的TairHash多個field的值和版本。

EXHLEN

EXHLEN key [NOEXP]

擷取key指定的TairHash中field個數,該命令不會觸發對到期field的被動淘汰,也不會將其過濾掉,所以結果中可能包含已經到期但還未被刪除的field。如果只想返回當前沒有到期的field個數,可以在命令中設定NOEXP選項。

EXHEXISTS

EXHEXISTS key field

查詢key指定的TairHash中是否存在對應的field。

EXHSTRLEN

EXHSTRLEN key field

擷取key指定的TairHash中一個field對應的value的長度。

EXHKEYS

EXHKEYS key

擷取key指定的TairHash中所有的field。

EXHVALS

EXHVALS key

擷取key指定的TairHash中所有field的值。

EXHGETALL

EXHGETALL key

擷取key指定的TairHash中所有field及其value。

EXHSCAN

EXHSCAN key op subkey [MATCH pattern] [COUNT count]

掃描Key指定的TairHash。

說明

僅記憶體型執行個體支援該命令。

EXHSCANUNORDER

EXHSCANUNORDER key cursor [MATCH pattern] [COUNT count]

掃描Key指定的TairHash。

說明

僅持久記憶體型執行個體支援該命令。

EXHDEL

EXHDEL key field [field ...]

刪除key指定的TairHash中的一個field,如果TairHash不存在或者field不存在則返回0 ,成功刪除返回1。

DEL

DEL <key> [key ...]

使用原生Redis的DEL命令可以刪除一條或多條TairHash資料。

說明

本文的命令文法定義如下:

  • 大寫關鍵字:命令關鍵字。

  • 斜體:變數。

  • [options]:選擇性參數,不在括弧中的參數為必選。

  • A|B:該組參數互斥,請進行二選一或多選一。

  • ...:前面的內容可重複。

EXHSET

類別

說明

文法

EXHSET key field value [EX time] [EXAT time] [PX time] [PXAT time] [NX | XX] [VER | ABS version] [KEEPTTL]

時間複雜度

O(1)

命令描述

向Key指定的TairHash中插入一個field。如果TairHash不存在則自動建立一個,如果field已經存在則覆蓋其值。

說明
  • 為Key的field設定了逾時時間後,再次執行該命令時如果沒有設定逾時時間,該field將被設定為永不到期。

  • 您也可以通過EXPIREEXPIREAT命令設定Key的到期時間。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • field:TairHash中的一個元素,一個TairHash key可以有多個field。

  • value:field對應的值,一個field只能有一個value。

  • EX:指定field的相對到期時間,單位為秒,為0表示馬上到期,不傳此參數表示不到期

  • EXAT:指定field的絕對到期時間,單位為秒,為0表示馬上到期,不傳此參數表示不到期

  • PX:指定field的相對到期時間,單位為毫秒,為0表示馬上到期,不傳此參數表示不到期

  • PXAT:指定field的絕對到期時間,單位為毫秒 ,為0表示馬上到期,不傳此參數表示不到期

  • NX:只在field不存在時插入。

  • XX:只在field存在時插入。

  • VER:版本號碼。

    • 如果field存在,和目前的版本號做比較:

      • 如果相等,繼續操作,且版本號碼加1。

      • 如果不相等,返回異常。

    • 如果field不存在或者field目前的版本為0,忽略傳入的版本號碼並繼續操作,成功後版本號碼變為1。

  • ABS:絕對版本號碼,不論field是否存在,可以在插入field時設定為本參數所指定的版本號碼。

  • KEEPTTL:在不指定EX、EXAT、PX或PXAT選項時,使用KEEPTTL選項會保留field當前的到期設定。

    說明

    若不使用KEEPTTL選項,EXHSET命令會預設刪除field上原先設定的到期時間。

傳回值

  • 建立field並成功為它設定值:1。

  • field已經存在,成功覆蓋舊值:0。

  • 指定了XX且field不存在:-1。

  • 指定了NX且field已經存在:-1。

  • 指定了VER且版本和目前的版本不匹配:"ERR update version is stale"。

  • 其它情況返回相應的異常資訊。

樣本

命令樣本:

EXHSET myhash field1 val EX 10

返回樣本:

(integer) 1

EXHGET

類別

說明

文法

EXHGET key field

時間複雜度

O(1)

命令描述

擷取key指定的TairHash中一個field的值,如果TairHash不存在或者field不存在,則返回nil。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • field:TairHash中的一個元素,一個TairHash key可以有多個field。

傳回值

  • field存在且操作成功:field對應的值。

  • key不存在或者field不存在:nil。

  • 其它情況返回相應的異常資訊。

樣本

提前執行EXHSET myhash field1 val命令。

命令樣本:

EXHGET myhash field1

返回樣本:

"val"

EXHMSET

類別

說明

文法

EXHMSET key field value [field value ...]

時間複雜度

O(N)

命令描述

同時向key指定的TairHash中插入多個field,如果TairHash不存在則自動建立一個,如果field已經存在則覆蓋其值。

說明

建立Key後,您可以通過EXHPEXPIREATEXHPEXPIREEXHEXPIREATEXHEXPIRE命令設定field的到期時間,您也可以通過EXPIREEXPIREAT命令設定Key的到期時間。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • field:TairHash中的一個元素,一個TairHash key可以有多個field。

  • value:field對應的值,一個field只能有一個value。

傳回值

  • 成功:OK。

  • 其它情況返回相應的異常資訊。

樣本

命令樣本:

EXHMSET myhash field1 val1 field2 val2

返回樣本:

OK

EXHPEXPIREAT

類別

說明

文法

EXHPEXPIREAT key field milliseconds-timestamp [VER | ABS version]

時間複雜度

O(1)

命令描述

在key指定的TairHash中為一個field設定絕對到期時間,精確到毫秒。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • field:TairHash中的一個元素,一個TairHash key可以有多個field。

  • milliseconds-timestamp:精確到毫秒的UNIX 時間戳記 (Unix timestamp)。

  • VER:版本號碼。

    • 如果field存在,和目前的版本號做比較:

      • 如果相等,繼續操作,且版本號碼加1。

      • 如果不相等,返回異常。

    • 如果field不存在或者field目前的版本為0,忽略傳入的版本號碼並繼續操作,成功後版本號碼變為1。

  • ABS:絕對版本號碼,不論field是否存在,可以在插入field時設定為本參數所指定的版本號碼。

傳回值

  • field存在且設定成功:1。

  • field不存在:0。

  • 其它情況返回相應的異常資訊。

樣本

命令樣本:

EXHPEXPIREAT myhash field1 1293840000

返回樣本:

(integer) 1

EXHPEXPIRE

類別

說明

文法

EXHPEXPIRE key field milliseconds [VER | ABS version]

時間複雜度

O(1)

命令描述

在key指定的TairHash中為一個field設定相對到期時間,單位為毫秒。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • field:TairHash中的一個元素,一個TairHash key可以有多個field。

  • milliseconds:相對到期時間,單位為毫秒。

  • VER:版本號碼。

    • 如果field存在,和目前的版本號做比較:

      • 如果相等,繼續操作,且版本號碼加1。

      • 如果不相等,返回異常。

    • 如果field不存在或者field目前的版本為0,忽略傳入的版本號碼並繼續操作,成功後版本號碼變為1。

  • ABS:絕對版本號碼,不論field是否存在,可以在插入field時設定為本參數所指定的版本號碼。

傳回值

  • field存在且設定成功:1。

  • field不存在:0。

  • 其它情況返回相應的異常資訊。

樣本

命令樣本:

EXHPEXPIRE myhash field1 1000

返回樣本:

(integer) 1

EXHEXPIREAT

類別

說明

文法

EXHEXPIREAT key field timestamp [VER | ABS version]

時間複雜度

O(1)

命令描述

在key指定的TairHash中為一個field設定絕對到期時間,精確到秒。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • field:TairHash中的一個元素,一個TairHash key可以有多個field。

  • timestamp:精確到秒的UNIX 時間戳記 (Unix timestamp)。

  • VER:版本號碼。

    • 如果field存在,和目前的版本號做比較:

      • 如果相等,繼續操作,且版本號碼加1。

      • 如果不相等,返回異常。

    • 如果field不存在或者field目前的版本為0,忽略傳入的版本號碼並繼續操作,成功後版本號碼變為1。

  • ABS:絕對版本號碼,不論field是否存在,可以在插入field時設定為本參數所指定的版本號碼。

傳回值

  • field存在且設定成功:1。

  • field不存在:0。

  • 其它情況返回相應的異常資訊。

樣本

命令樣本:

EXHEXPIREAT myhash field1 1293840000

返回樣本:

(integer) 1

EXHEXPIRE

類別

說明

文法

EXHEXPIRE key field seconds [VER | ABS version]

時間複雜度

O(1)

命令描述

在key指定的TairHash中為一個field設定相對到期時間,單位為秒。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • field:TairHash中的一個元素,一個TairHash key可以有多個field。

  • seconds:相對到期時間,單位為秒。

  • VER:版本號碼。

    • 如果field存在,和目前的版本號做比較:

      • 如果相等,繼續操作,且版本號碼加1。

      • 如果不相等,返回異常。

    • 如果field不存在或者field目前的版本為0,忽略傳入的版本號碼並繼續操作,成功後版本號碼變為1。

  • ABS:絕對版本號碼,不論field是否存在,可以在插入field時設定為本參數所指定的版本號碼。

傳回值

  • field存在且設定成功:1。

  • field不存在:0。

  • 其它情況返回相應的異常資訊。

樣本

命令樣本:

EXHEXPIRE myhash field1 100

返回樣本:

(integer) 1

EXHPTTL

類別

說明

文法

EXHPTTL key field

時間複雜度

O(1)

命令描述

查看key指定的TairHash中一個field的剩餘到期時間,結果精確到毫秒。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • field:TairHash中的一個元素,一個TairHash key可以有多個field。

傳回值

  • field存在但是沒有設定到期時間:-1。

  • key或者field不存在:-2。

  • field不存在:-3。

  • field存在且設定了到期時間:到期時間,單位為毫秒。

  • 其它情況返回相應的異常資訊。

樣本

提前執行EXHSET myhash field1 val1 EX 100命令。

命令樣本:

EXHPTTL myhash field1

返回樣本:

(integer) 97213

EXHTTL

類別

說明

文法

EXHTTL key field

時間複雜度

O(1)

命令描述

查看key指定的TairHash中一個field的到期時間,結果精確到秒。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • field:TairHash中的一個元素,一個TairHash key可以有多個field。

傳回值

  • key或者field不存在:-2。

  • field存在但是沒有設定到期時間:-1。

  • field存在且設定了到期時間:到期時間,單位為秒。

  • 其它情況返回相應的異常資訊。

樣本

提前執行EXHSET myhash field1 val1 EX 100命令。

命令樣本:

EXHTTL myhash field1

返回樣本:

(integer) 85

EXHVER

類別

說明

文法

EXHVER key field

時間複雜度

O(1)

命令描述

查看key指定的TairHash中一個field的目前的版本號。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • field:TairHash中的一個元素,一個TairHash key可以有多個field。

傳回值

  • key不存在:-1。

  • field不存在:-2。

  • 查詢成功:field的版本號碼。

  • 其它情況返回相應的異常資訊。

樣本

命令樣本:

EXHVER myhash field1

返回樣本:

(integer) 1

EXHSETVER

類別

說明

文法

EXHSETVER key field version

時間複雜度

O(1)

命令描述

設定key指定的TairHash中一個field的版本號碼。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • field:TairHash中的一個元素,一個TairHash key可以有多個field。

傳回值

  • TairHash或者field不存在:0。

  • 設定成功:1。

  • 其它情況返回相應的異常資訊。

樣本

命令樣本:

EXHSETVER myhash field1 3

返回樣本:

(integer) 1

EXHINCRBY

類別

說明

文法

EXHINCRBY key field num [EX time] [EXAT time] [PX time] [PXAT time] [VER | ABS version] [MIN minval] [MAX maxval] [KEEPTTL]

時間複雜度

O(1)

命令描述

將key指定的TairHash中一個field的value增加num,num為一個整數。如果TairHash不存在則自動新建立一個,如果指定的field不存在,則在加之前插入該field並將其值設定為0。

說明

為Key的field設定了逾時時間後,再次執行該命令時如果沒有設定逾時時間,該field將被設定為永不到期。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • field:TairHash中的一個元素,一個TairHash key可以有多個field。

  • num:需要為field的value增加的整數值。

  • EX:指定field的相對到期時間,單位為秒,為0表示馬上到期,不傳此參數表示不到期

  • EXAT:指定field的絕對到期時間,單位為秒,為0表示馬上到期,不傳此參數表示不到期

  • PX:指定field的相對到期時間,單位為毫秒,為0表示馬上到期,不傳此參數表示不到期

  • PXAT:指定field的絕對到期時間,單位為毫秒 ,為0表示馬上到期,不傳此參數表示不到期

  • VER:版本號碼。

    • 如果field存在,和目前的版本號做比較:

      • 如果相等,繼續操作,且版本號碼加1。

      • 如果不相等,返回異常。

    • 如果field不存在或者field目前的版本為0,忽略傳入的版本號碼並繼續操作,成功後版本號碼變為1。

  • ABS:絕對版本號碼,不論field是否存在,可以在插入field時設定為本參數所指定的版本號碼。

  • MIN:value的最小值,小於該值則提示異常。

  • MAX:value的最大值,大於該值則提示異常。

  • KEEPTTL:在不指定EX、EXAT、PX或PXAT選項時,使用KEEPTTL選項會保留field當前的到期設定。

傳回值

  • 成功:與num相加後value的值。

  • 其它情況返回異常。

樣本

提前執行EXHMSET myhash field1 10命令。

命令樣本:

EXHINCRBY myhash field1 100

返回樣本:

(integer) 110

EXHINCRBYFLOAT

類別

說明

文法

EXHINCRBYFLOAT key field num [EX time] [EXAT time] [PX time] [PXAT time] [VER | ABS version] [MIN minval] [MAX maxval] [KEEPTTL]

時間複雜度

O(1)

命令描述

將key指定的TairHash中一個field的value增加num,num為一個浮點數。如果TairHash不存在則自動新建立一個,如果指定的field不存在,則在加之前插入該field並將其值設定為0。

說明

為Key的field設定了逾時時間後,再次執行該命令時如果沒有設定逾時時間,該field將被設定為永不到期。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • field:TairHash中的一個元素,一個TairHash key可以有多個field。

  • num:需要為field的value增加的值,類型為浮點。

  • EX:指定field的相對到期時間,單位為秒,為0表示馬上到期,不傳此參數表示不到期

  • EXAT:指定field的絕對到期時間,單位為秒,為0表示馬上到期,不傳此參數表示不到期

  • PX:指定field的相對到期時間,單位為毫秒,為0表示馬上到期,不傳此參數表示不到期

  • PXAT:指定field的絕對到期時間,單位為毫秒 ,為0表示馬上到期,不傳此參數表示不到期

  • VER:版本號碼。

    • 如果field存在,和目前的版本號做比較:

      • 如果相等,繼續操作,且版本號碼加1。

      • 如果不相等,返回異常。

    • 如果field不存在或者field目前的版本為0,忽略傳入的版本號碼並繼續操作,成功後版本號碼變為1。

  • ABS:絕對版本號碼,不論field是否存在,可以在插入field時設定為本參數所指定的版本號碼。

  • MIN:value的最小值,小於該值則提示異常。

  • MAX:value的最大值,大於該值則提示異常。

  • KEEPTTL:在不指定EX、EXAT、PX或PXAT選項時,使用KEEPTTL選項會保留field當前的到期設定。

傳回值

  • 成功:與num相加後value的值。

  • 其它情況返回異常。

樣本

提前執行EXHMSET myhash field1 10命令。

命令樣本:

EXHINCRBYFLOAT myhash field1 9.235

返回樣本:

"19.235"

EXHGETWITHVER

類別

說明

文法

EXHGETWITHVER key field

時間複雜度

O(1)

命令描述

同時擷取key指定的TairHash一個field的值和版本,如果TairHash不存在或者field不存在,則返回nil。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • field:TairHash中的一個元素,一個TairHash key可以有多個field。

傳回值

  • field存在且操作成功:field對應的值和版本。

  • key不存在或者field不存在:nil。

  • 其它情況返回相應的異常資訊。

樣本

命令樣本:

EXHGETWITHVER myhash field1

返回樣本:

1) "19.235"
2) (integer) 5

EXHMGET

類別

說明

文法

EXHMGET key field [field ...]

時間複雜度

O(1)

命令描述

同時擷取key指定的TairHash多個field的值,如果TairHash不存在或者field不存在,則返回nil。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • field:TairHash中的一個元素,一個TairHash key可以有多個field。

傳回值

  • key不存在:nil。

  • key存在且查詢的所有field都存在:返回一個數組,數組的每一個元素對應一個field的value。

  • key存在且查詢的field中有不存在的:返回一個數組,數組的每一個元素對應一個field的value,不存在的field對應的元素顯示為nil。

  • 其它情況返回相應的異常資訊。

樣本

提前執行EXHMSET myhash field1 10 field2 var1命令。

命令樣本:

EXHMGET myhash field1 field2

返回樣本:

1) "10"
2) "var1"

EXHMGETWITHVER

類別

說明

文法

EXHMGETWITHVER key field [field ...]

時間複雜度

O(1)

命令描述

同時擷取key指定的TairHash多個field的值和版本。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • field:TairHash中的一個元素,一個TairHash key可以有多個field。

傳回值

  • key不存在:nil。

  • key存在且查詢的所有field都存在:返回一個數組,數組的每一個元素對應一個field的value和version。

  • key存在且查詢的field中有不存在的:返回一個數組,數組的每一個元素對應一個field的value和version,不存在的field對應的元素顯示為nil。

  • 其它情況返回相應的異常資訊。

樣本

提前執行EXHMSET myhash field1 10 field2 var1命令。

命令樣本:

 EXHMGETWITHVER myhash field1 field2

返回樣本:

1) 1) "10"
   2) (integer) 1
2) 1) "var1"
   2) (integer) 1

EXHLEN

類別

說明

文法

EXHLEN key [NOEXP]

時間複雜度

未設定NOEXP選項時是O(1),設定NOEXP選項時是O(N)。

命令描述

擷取key指定的TairHash中field個數,該命令不會觸發對到期field的被動淘汰,也不會將其過濾掉,所以結果中可能包含已經到期但還未被刪除的field。如果只想返回當前沒有到期的field個數,可以在命令中設定NOEXP選項。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • NOEXP:該命令預設不會觸發對到期field的被動淘汰,也不會將其過濾掉,所以結果中可能包含已經到期但還未被刪除的field。如果只想返回當前沒有到期的field個數,可以在命令中設定NOEXP選項。在設定NOEXP時:

    • 因為要遍曆整條TairHash資料,EXHLEN命令的回應時間將受到Tairhash大小的影響。

    • EXHLEN命令的返回結果中會過濾掉到期的field,但到期field不會被淘汰。

傳回值

  • key不存在或者field不存在:0。

  • 成功:field個數。

  • 其它情況返回相應的異常資訊。

樣本

命令樣本:

EXHLEN myhash

返回樣本:

(integer) 2

EXHEXISTS

類別

說明

文法

EXHEXISTS key field

時間複雜度

O(1)

命令描述

查詢key指定的TairHash中是否存在對應的field。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • field:TairHash中的一個元素,一個TairHash key可以有多個field。

傳回值

  • key不存在或者field不存在:0。

  • field存在:1。

  • 其它情況返回相應的異常資訊。

樣本

命令樣本:

EXHEXISTS myhash field1

返回樣本:

(integer) 1

EXHSTRLEN

類別

說明

文法

EXHSTRLEN key field

時間複雜度

O(1)

命令描述

擷取key指定的TairHash中一個field對應的value的長度。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • field:TairHash中的一個元素,一個TairHash key可以有多個field。

傳回值

  • key不存在或者field不存在:0。

  • 查詢成功:value的長度。

  • 其它情況返回相應的異常資訊。

樣本

命令樣本:

EXHSTRLEN myhash field1

返回樣本:

(integer) 2

EXHKEYS

類別

說明

文法

EXHKEYS key

時間複雜度

O(N)

命令描述

擷取key指定的TairHash中所有的field。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

傳回值

  • key不存在:返回一個空數組。

  • key存在:返回一個數組,數組的每一位對應TairHash中的每一個field。

  • 其它情況返回相應的異常資訊。

樣本

提前執行EXHMSET myhash field1 10 field2 var1命令。

命令樣本:

EXHKEYS myhash

返回樣本:

1) "field1"
2) "field2"

EXHVALS

類別

說明

文法

EXHVALS key

時間複雜度

O(N)

命令描述

擷取key指定的TairHash中所有field的值。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

傳回值

  • key不存在:返回一個空數組。

  • key存在:返回一個數組,數組的每個元素對應TairHash中的一個field的value。

  • 其它情況返回相應的異常資訊。

樣本

提前執行EXHMSET myhash field1 10 field2 var1命令。

命令樣本:

EXHVALS myhash

返回樣本:

1) "10"
2) "var1"

EXHGETALL

類別

說明

文法

EXHGETALL key

時間複雜度

O(N)

命令描述

擷取key指定的TairHash中所有field及其value。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

傳回值

  • key不存在:返回一個空數組。

  • key存在:返回一個數組,數組的每個元素對應TairHash中的一對field和value。

  • 其它情況返回相應的異常資訊。

樣本

提前執行EXHMSET myhash field1 10 field2 var1命令。

命令樣本:

EXHGETALL myhash

返回樣本:

1) "field1"
2) "10"
3) "field2"
4) "var1"

EXHSCAN

類別

說明

文法

EXHSCAN key op subkey [MATCH pattern] [COUNT count]

時間複雜度

每次調用時是O(1),遍曆整個TairHash時是O(N)。

命令描述

掃描Key指定的TairHash。

說明

僅記憶體型執行個體支援該命令。

選項

  • key:TairHash的Key,用於指定作為命令調用對象的TairHash。

  • op:用於定位掃描的起點,可選值如下。

    • >:表示從第一個大於subkey的field開始。

    • >=:表示從第一個大於等於subkey的field開始。

    • <:表示從第一個小於subkey的field開始。

    • <=:表示從第一個小於等於subkey的field開始。

    • ==:表示從第一個等於subkey的field開始。

    • ^:表示從第一個field開始。

    • $:表示從最後一個field開始。

  • subkey:用於與op選項搭配,設定掃描起始位置,當op為^或$時該值將被忽略。

  • MATCH:用於過濾掃描結果,根據MATCH指定的pattern對subkey進行正則過濾。

  • COUNT:用於規定單次掃描field的個數(預設為10)。

    說明

    COUNT僅表示每次掃描TairHash的field的個數,不代表最終一定會返回COUNT個field結果集,結果集的大小還要根據TairHash中當前field個數和是否指定MATCH進行過濾而定。

傳回值

  • Key不存在:返回一個空數組。

  • Key存在:返回一個具有兩個元素的數組:

    • 第一個元素:下一次掃描的起始field,如果該Key已掃描完成,則該元素為空白。

    • 第二個元素:本次掃描結果,包含field和value。

  • 其它情況返回相應的異常資訊。

樣本

提前執行EXHMSET myhashkey field1 val1 field2 val2 field3 val3 field4 val4 field5 val5命令。

命令樣本:

EXHSCAN myhashkey ^ xx COUNT 3

返回樣本:

1) "field4"
2) 1) "field1"
   2) "val1"
   3) "field2"
   4) "val2"
   5) "field3"
   6) "val3"

EXHSCANUNORDER

類別

說明

文法

EXHSCANUNORDER key cursor [MATCH pattern] [COUNT count]

時間複雜度

每次調用時是O(1),遍曆整個TairHash時是O(N)。

命令描述

掃描Key指定的TairHash。

說明

僅持久記憶體型執行個體支援該命令。

選項

  • key:TairHash的Key,用於指定作為命令調用對象的TairHash。

  • cursor:指定本次掃描的遊標

  • MATCH:用於過濾掃描結果,根據MATCH指定的pattern對待掃描的Key進行正則過濾。

  • COUNT:用於規定單次掃描field的個數(預設為10)。

    說明

    COUNT僅表示每次掃描TairHash的field的個數,不代表最終一定會返回COUNT個field結果集,結果集的大小還要根據TairHash中當前field個數和是否指定MATCH進行過濾而定。

傳回值

  • Key不存在:返回一個空數組。

  • Key存在:返回一個具有兩個元素的數組:

    • 第一個元素:下次查詢的cursor,若該Key已掃描完成,則返回0。

    • 第二個元素:本次掃描結果,包含field和value。

  • 其它情況返回相應的異常資訊。

樣本

提前執行EXHMSET myhashkey field1 val1 field2 val2 field3 val3 field4 val4 field5 val5命令。

命令樣本:

EXHSCANUNORDER myhashkey 0 COUNT 3

返回樣本:

1) "1"
2) 1) "field5"
   2) "val5"
   3) "field2"
   4) "val2"

EXHDEL

類別

說明

文法

EXHDEL key field [field ...]

時間複雜度

O(1)

命令描述

刪除key指定的TairHash中的一個field,如果TairHash不存在或者field不存在則返回0 ,成功刪除返回1。

選項

  • Key:TairHash的key,用於指定作為命令調用對象的TairHash。

  • field:TairHash中的一個元素,一個TairHash key可以有多個field。

傳回值

  • key不存在或者field不存在:0。

  • 刪除成功:1。

  • 其它情況返回相應的異常資訊。

樣本

命令樣本:

EXHDEL myhash field1

返回樣本:

(integer) 1