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

exZset

通過TairZset(exZset)可實現256維度的double類型的分值排序,適用于游戲、直播、音樂、電商等行業的排行榜場景,可極大提升數據處理效率,且客戶端適配簡易,無需任何編解碼封裝。

TairZset簡介

原生Redis支持的排序結構Sorted Set(也稱Zset)只支持1個double類型的分值排序,實現多維度排序時較為困難。例如通過IEEE 754結合拼接的方式實現多維度排序,此類方式存在實現復雜、精度下降、EXZINCRBY命令無法使用等局限性。

借助阿里云自研的TairZset數據結構,可幫助您輕松實現多維度排序能力,相較于傳統方案具有如下優勢:

  • 最大支持256維的double類型的分值排序(排序優先級為從左往右)。

    對于多維score而言,左邊的score優先級大于右邊的score,以一個三維score為例:score1#score2#score3,TairZset在比較時,會先比較score1,只有score1相等時才會比較score2,否則就以score1的比較結果作為整個score的比較結果。同樣,只有當score2相等時才會比較score3。若所有維度分數都相同,則會按照元素順序(ascii順序)進行排序。

    為了方便理解,可以把#想象成小數點(.),例如0#99、99#90和99#99大小關系可以理解為0.99 < 99.90 < 99.99,即0#99 < 99#90 < 99#99。

  • 支持EXZINCRBY命令,不再需要取回當前數據,在本地增加值后再拼接寫回Tair

  • 支持和原生Zset相似的API。

  • 提供 普通排行榜分布式架構排行榜 的能力。

  • 提供開源TairJedis客戶端,無需任何編解碼封裝,您也可以參考開源自行實現封裝其他語言版本。

典型場景

適用于游戲、直播、音樂、電商等行業的排行榜場景,例如:

  • 直播排行榜:直播PK中,主播之間先按照當前人氣值排序;如果人氣值相同,再按照點贊數排序;如果點贊數也相同,再按照禮物金額進行排序等。

  • 獎牌排行榜:從金、銀、銅牌的維度對參賽方進行排名,先按照金牌數量排序;如果金牌數量一致,再以銀牌數量排序;如果銀牌數量也一致,再按照銅牌數量排序。

  • 游戲排行榜:玩家之間按照得分、任務完成時長、段位等多個維度進行排名。

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

最佳實踐

前提條件

實例為Tair內存型,且小版本為1.7.1及以上。

說明

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

注意事項

操作對象為Tair實例中的TairZset數據。

命令列表

命令

語法

說明

EXZADD

EXZADD key [NX|XX] [CH] [INCR] score member [score member ...]

將指定的分數與成員信息存儲到TairZset結構的Key中,支持指定多個分數與成員。

說明

如需實現多維度的排序,各維度的分數之間使用井號(#)分隔,例如111#222#121,且要求該Key中所有成員的分數格式必須相同。

EXZINCRBY

EXZINCRBY key increment member

為Key(TairZset數據結構)中的成員增加分數,increment為要增加的分數值。

EXZSCORE

EXZSCORE key member

返回存儲在Key(TairZset數據結構)中成員的分數,如果Key或Key中的成員不存在,系統會返回nil。

EXZRANGE

EXZRANGE key min max [WITHSCORES]

返回存儲在Key(TairZset數據結構)中指定范圍的元素。

EXZREVRANGE

EXZREVRANGE key min max [WITHSCORES]

返回存儲在Key(TairZset數據結構)中指定范圍內的元素,元素按分值從高到低的順序排列,按字典序降序排列分數相同的元素。

說明

除排序方式相反外,本命令和EXZRANGE用法相似。

EXZRANGEBYSCORE

EXZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

返回存儲在Key(TairZset數據結構)中,分數大于等于min且小于等于max值的所有元素,返回元素按分數從低到高排列,分數相同的元素按照字典順序返回。

EXZREVRANGEBYSCORE

EXZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]

返回存儲在Key(TairZset數據結構)中,分數大于等于min且小于等于max值的所有元素。和TairZset中元素默認排序相反,該命令返回元素按照分數從高到低排列,分數相同的元素按照逆字典序排列。

說明

除排序方式相反外,本命令和EXZRANGEBYSCORE用法相似,注意本命令中max在前。

EXZRANGEBYLEX

EXZRANGEBYLEX key min max [LIMIT offset count]

為確保元素按照字典序排列,當Key中所有元素分數相同時,則該命令返回存儲在Key中介于minmax值之間的元素。

EXZREVRANGEBYLEX

EXZREVRANGEBYLEX key max min [LIMIT offset count]

為確保元素按照字典序排列,當Key中所有元素分數相同時,則該命令返回存儲在Key中介于max和min之間的元素。

說明

除排序方式相反外,本命令和EXZRANGEBYLEX用法相同,注意本命令中max在前。

EXZREM

EXZREM key member [member ...]

移除存儲Key中的指定成員,如果指定成員不存在,則忽略。

EXZREMRANGEBYSCORE

EXZREMRANGEBYSCORE key min max

移除存儲在Key(TairZset數據結構)中,分數大于等于min且小于等于max值的元素。

EXZREMRANGEBYRANK

EXZREMRANGEBYRANK key start stop

移除存儲在Key(TairZset數據結構)中,級別介于startstop之間的元素。

EXZREMRANGEBYLEX

EXZREMRANGEBYLEX key min max

為確保元素按照字典序排列,當Key中所有元素分數相同時,則該命令移除存儲在Key中介于max和min之間的元素。

說明

若使用相同的minmax參數值執行該命令和EXZRANGEBYLEX命令,則該命令移除的元素與EXZRANGEBYLEX命令返回的元素相同。

EXZCARD

EXZCARD key

返回存儲在Key(TairZset數據結構)中的基數(即元素的個數)。

EXZRANK

EXZRANK key member

返回存儲在Key(TairZset數據結構)中的成員的級別,按照分數由低到高排列。 級別(或索引)從0開始計數,即分數最低的成員的級別為0。

EXZREVRANK

EXZREVRANK key member

返回存儲在Key(TairZset數據結構)中的成員的級別。返回結果按照分數從高到低排列。 級別(或索引)從0開始計數,即分數最高的成員的級別為0。

說明

除排序規則相反外,本命令和EXZRANK用法類似。

EXZCOUNT

EXZCOUNT key min max

返回存儲在Key(TairZset數據結構)中,分數介于minmax之間的元素的個數。

EXZLEXCOUNT

EXZLEXCOUNT key min max

為確保元素按照字典序排列,若Key中所有元素分數相同,則該命令返回存儲在Key,值介于min和max之間的元素的數量。

EXZRANKBYSCORE

EXZRANKBYSCORE key score

計算指定的分數在Key(TairZset數據結構)中按照分數從低到高排序的排名位置。級別(或索引)從0開始計數,即分數最低的成員的級別為0。

說明

若指定的分數不存在,則返回該分數在Key(TairZset數據結構)中的預計排名;若指定的分數已存在,Tair會默認將指定的分數排在已存在的分數之前。

EXZREVRANKBYSCORE

EXZREVRANKBYSCORE key score

計算指定的分數在Key(TairZset數據結構)中按照分數從高到低排序的排名位置。級別(或索引)從0開始計數,即分數最高的成員的級別為0。

說明

若指定的分數不存在,則返回該分數在Key(TairZset數據結構)中的預計排名;若指定的分數已存在,Tair會默認將指定的分數排在已存在的分數之后。

DEL

DEL key [key ...]

使用原生Redis的DEL命令可以刪除一條或多條TairZset數據。

說明

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

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

  • 斜體:變量。

  • [options]:可選參數,不在括號中的參數為必選。

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

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

EXZADD

類別

說明

語法

EXZADD key [NX|XX] [CH] [INCR] score member [score member ...]

時間復雜度

O(N)

命令描述

將指定的分數與成員信息存儲到TairZset結構的Key中,支持指定多個分數與成員,系統會根據Key和成員是否存在,執行不同的策略:

說明

如需實現多維度的排序,各維度的分數之間使用井號(#)分隔,例如111#222#121,且要求該Key中所有成員的分數格式必須相同。

  • 如果指定的Key存在,但其數據結構不是TairZset,系統將返回錯誤。

  • 如果指定的Key不存在,系統將創建一個TairZset結構的Key,然后將指定的成員添加至該Key中。

  • 如果指定的成員已經是TairZset的成員,則會更新該成員的分數,并將該成員重新插入到正確的位置,避免打亂排序。

  • 每個分數值使用雙精度浮點數的字符串表示,+inf和-inf值都是有效值。

選項

  • NX:只添加新元素,不更新已經存在的元素。

  • XX:只更新已經存在的元素,不添加新的元素。

  • CH:一般情況下,本命令的返回值為添加的新元素數量,通過該參數可以將返回值改為發生變化的元素總數。

    說明

    發生變化的元素包含新元素和分數有更新的已有元素。 因此,如果命令行中已存在的一個元素的分數沒有發生變化,則該元素不算作發生變化的元素。

  • INCR:指定此選項時,EXZADD的行為與EXZINCRBY類似,即該模式下僅支持指定一對分數與元素。

返回值

返回值為整數數字,具體為:

  • 未指定任何選項時,返回值為添加到Key中的元素數量(不包括僅更新分數的元素)。

  • 指定了CH選項時,返回值為發生變化的(新增或更新)元素數量。

  • 指定了INCR選項時,則返回值為成員的新分數(字符串形式)。如果使用了多維度分數,則該成員分數的格式為"分數1#分數2#分數3#...",例如2#0#6

    說明

    如果停止該操作(命令中包含XX或NX選項),則返回nil。

示例

命令示例:

EXZADD testkey NX 1#0#3 a 1#0#2 b

返回示例:

(integer) 2

EXZINCRBY

類別

說明

語法

EXZINCRBY key increment member

時間復雜度

O(log(N))

命令描述

為Key(TairZset數據結構)中的成員增加分數,increment為要增加的分數值,系統會根據Key和成員是否存在,執行不同的策略:

  • 如果指定的Key存在,但其數據結構不是TairZset,系統將返回錯誤。

  • 如果指定的Key不存在,系統將創建一個TairZset結構的Key,然后將指定的成員作為該Key的唯一成員。

  • 如果指定的Key沒有成員,系統將向其中添加一個分數為increment參數值的成員,即假設成員原分數為0.0分。

說明
  • 如需實現多維度的排序,各維度的分數之間使用井號(#)分隔,例如111#222#121,且要求該Key中所有成員的分數格式必須相同。

  • 分數值應為數字值的字符串形式,可以為雙精度浮點數。 如果需要降低成員的分數,則指定一個負數。

選項

返回值

返回成員的新分數(字符串形式),如果使用了多維度分數,則該成員分數的格式為"分數1#分數2#分數3#...",例如2#0#6

示例

命令示例:

EXZINCRBY testkey 2#2#1 a

返回示例:

"3#2#4"

EXZSCORE

類別

說明

語法

EXZSCORE key member

時間復雜度

O(1)

命令描述

返回存儲在Key(TairZset數據結構)中成員的分數,如果Key或Key中的成員不存在,系統會返回nil。

選項

返回值

返回成員的分數(字符串形式),如果使用了多維度分數,則該成員分數的格式為"分數1#分數2#分數3#...",例如2#0#6

示例

命令示例:

EXZSCORE testkey a

返回示例:

"3#2#4"

EXZRANGE

類別

說明

語法

EXZRANGE key min max [WITHSCORES]

時間復雜度

O(log(N)+M),其中,N表示TairZset中元素的數量,M表示返回的元素的數量。

命令描述

返回存儲在Key(TairZset數據結構)中指定范圍的元素。

選項

  • minmax:代表基于0的索引值。其中,第一個元素的索引值為0,第二個元素的索引值為1,依此類推。 可使用這兩個參數指定一個閉區間。

    說明
    • 如果索引值為負數,則表示返回的元素末尾往前偏移的量。比如,-1代表Key的最后一個元素,-2代表倒數第二個元素,依此類推。

    • 如需查詢所有的元素信息,min取值為0,max取值為-1。

    • 如果min的值比Key中最后一個元素的索引值或max的值更大,則返回空列表。

  • WITHSCORES:返回值中包含元素的分數,即返回列表的數據格式為值1,分數1,...,值N,分數N,例如:

    1) "b"
    2) "1#0#2"
    3) "a"
    4) "3#2#4"

返回值

返回指定范圍內元素的列表,如果使用了WITHSCORES選項,則返回結果中包含元素的分數。

示例

命令示例:

EXZRANGE testkey 0 -1 WITHSCORES

返回示例:

1) "b"
2) "1#0#2"
3) "a"
4) "3#2#4"

EXZREVRANGE

類別

說明

語法

EXZREVRANGE key min max [WITHSCORES]

時間復雜度

O(log(N)+M),其中,N表示TairZset中元素的數量,M表示返回的元素的數量。

命令描述

返回存儲在Key(TairZset數據結構)中指定范圍內的元素,元素按分值從高到低的順序排列,按字典序降序排列分數相同的元素。

說明

除排序方式相反外,本命令和EXZRANGE用法相似。

選項

  • minmax:代表基于0的索引值。其中,第一個元素的索引值為0,第二個元素的索引值為1,依此類推。 可使用這兩個參數指定一個閉區間。

    說明
    • 如果索引值為負數,則表示返回的元素末尾往前偏移的量。比如,-1代表Key的最后一個元素,-2代表倒數第二個元素,依此類推。

    • 如需查詢所有的元素信息,min取值為0,max取值為-1。

    • 如果min的值比Key中最后一個元素的索引值或max的值更大,則返回空列表。

  • WITHSCORES:返回值中包含元素的分數,即返回列表的數據格式為值1,分數1,...,值N,分數N,例如:

    1) "b"
    2) "1#0#2"
    3) "a"
    4) "3#2#4"

返回值

返回指定范圍內的元素列表,如果使用了WITHSCORES選項,則返回結果中包含元素的分數。

示例

命令示例:

EXZREVRANGE testkey 0 -1 WITHSCORES

返回示例:

1) "a"
2) "3#2#4"
3) "b"
4) "1#0#2"

EXZRANGEBYSCORE

類別

說明

語法

EXZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

時間復雜度

O(log(N)+M),其中,N表示TairZset中元素的數量,M表示返回的元素的數量。

說明

當M為常量時(例如使用LIMIT選項指定總是返回前10個元素時),可將該公式看作O(log(N))。

命令描述

返回存儲在Key(TairZset數據結構)中,分數大于等于min且小于等于max值的所有元素,返回元素按分數從低到高排列,分數相同的元素按照字典順序返回。

選項

  • minmax:分別表示最小分數和最大分數,如Key中的元素采用了多維度的分數,各維度的分數之間使用井號(#)分隔。

    說明
    • 在不確定Key中元素的最高分和最低分的情況下,如果想要查詢Key中分數大于等于或小于等于某一特定值的元素,請將minmax分別設置為負無窮大(-inf)和正無窮大(+inf)。

    • 默認數據范圍為閉區間,如需指定開區間,則在分數范圍前添加半角圓括號,例如(1 5表示返回分數大于1且小于等于5的元素。

  • WITHSCORES:返回值中包含元素的分數。

  • LIMIT offset count:指定返回結果的數量及區間,如果count為負數,則返回從offset開始的所有元素。

    說明

    如果offset較大,則需要遍歷整個Key以定位到offset元素,然后才能返回元素,即會增加時間復雜度。

返回值

返回指定分數范圍內的元素列表,如果使用了WITHSCORES選項,則返回結果中包含元素的分數。

命令示例

命令示例:

EXZRANGEBYSCORE testkey 0#0#0 6#6#6 WITHSCORES

返回示例:

1) "b"
2) "1#0#2"
3) "a"
4) "3#2#4"

EXZREVRANGEBYSCORE

類別

說明

語法

EXZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]

時間復雜度

O(log(N)+M) ,其中,N表示TairZset中元素的數量,M表示返回的元素的數量。

說明

當M為常量時(比如使用LIMIT選項指定總是返回前10個元素時),可將該公式看作O(log(N))。

命令描述

返回存儲在Key(TairZset數據結構)中,分數大于等于min且小于等于max值的所有元素。和TairZset中元素默認排序相反,該命令返回元素按照分數從高到低排列,分數相同的元素按照逆字典序排列。

說明

除排序方式相反以外,本命令和EXZRANGEBYSCORE用法相似,注意本命令中max在前。

選項

  • minmax:分別表示最小分數和最大分數,如Key中的元素采用了多維度的分數,各維度的分數之間使用井號(#)分隔。

    說明
    • 在不確定Key中元素的最高分和最低分的情況下,如果想要查詢Key中分數大于等于或小于等于某一特定值的元素,請將minmax分別設置為負無窮大(-inf)和正無窮大(+inf)。

    • 默認數據范圍為閉區間,如需指定開區間,則在分數范圍前添加半角圓括號,例如(1 5表示返回分數大于1且小于等于5的元素。

  • WITHSCORES:返回值中包含元素的分數。

  • LIMIT offset count:指定返回結果的數量及區間,如果count為負數,則返回從offset開始的所有元素。

    說明

    如果offset較大,則需要遍歷整個Key以定位到offset元素,然后才能返回元素,即會增加時間復雜度。

返回值

返回指定分數范圍內的元素列表,如果使用了WITHSCORES選項,則返回結果中包含元素的分數。

命令示例

命令示例:

EXZREVRANGEBYSCORE testkey 6#6#6 0#0#0 WITHSCORES

返回示例:

1) "a"
2) "3#2#4"
3) "b"
4) "1#0#2"

EXZRANGEBYLEX

類別

說明

語法

EXZRANGEBYLEX key min max [LIMIT offset count]

時間復雜度

O(log(N)+M),其中,N表示TairZset中元素的數量,M表示返回的元素的數量。

說明

當M為常量時(例如使用LIMIT選項指定返回前10個元素時),可將該公式看作O(log(N))。

命令描述

為確保元素按照字典序排列,當Key中所有元素分數相同時,則該命令返回存儲在Key中介于minmax值之間的元素。

說明
  • 如果Key中元素分數不同,則返回元素未知。

  • 采用memcmp() C函數逐個比對兩個元素字符串中的字節。根據比對結果,由低到高排列元素。 若兩個字符串包含相同的子字符串,那么字符串越長,其分值越高。

選項

  • minmax:分別表示成員名稱的最小值和最大值(字符串形式),需指定字符的區間,例如

    • 開區間:在值的前面增加半角圓括號,例如(a

    • 閉區間:在值的前面增加方括號,例如[a

    說明

    正負無窮大分別為+-

  • LIMIT offset count:指定返回結果的數量及區間,如果count為負數,則返回從offset開始的所有元素。

    說明

    如果offset較大,則需要遍歷整個Key以定位到offset元素,然后才能返回元素,即會增加時間復雜度。

返回值

返回元素名稱在指定范圍內的元素列表。

命令示例

命令示例:

EXZRANGEBYLEX zzz [a [b

返回示例:

1) "aba"
2) "abc"

EXZREVRANGEBYLEX

類別

說明

語法

EXZREVRANGEBYLEX key max min [LIMIT offset count]

時間復雜度

O(log(N)+M),其中,N表示TairZset中元素的數量,M表示返回的元素的數量。

說明

當M為常量時(例如使用LIMIT選項指定總是返回前10個元素時),可將該公式看作O(log(N))。

命令描述

為確保元素按照字典序排列,當Key中所有元素分數相同時,則該命令返回存儲在Key中介于max和min之間的元素。

說明

除排序方式相反外,本命令和EXZRANGEBYLEX用法相同,注意本命令中max在前。

選項

  • minmax:分別表示成員名稱的最小值和最大值(字符串形式),需指定字符的區間,例如

    • 開區間:在值的前面增加半角圓括號,例如(a

    • 閉區間:在值的前面增加方括號,例如[a

    說明

    正負無窮大分別為+-

  • LIMIT offset count:指定返回結果的數量及區間,如果count為負數,則返回從offset開始的所有元素。

    說明

    如果offset較大,則需要遍歷整個Key以定位到offset元素,然后才能返回元素,即會增加時間復雜度。

返回值

返回元素名稱在指定范圍內的元素列表。

命令示例

命令示例:

EXZREVRANGEBYLEX zzz [b [a

返回示例:

1) "abc"
2) "aba"

EXZREM

類別

說明

語法

EXZREM key member [member ...]

時間復雜度

O(M*log(N)),其中,N為TairZset中元素的數量,M為待移除的元素的數量。

命令描述

移除存儲Key中的指定成員,如果指定成員不存在,則忽略。

說明

如果指定的Key存在,但其數據結構不是TairZset,系統將返回錯誤。

選項

返回值

返回Key中被移除的成員數量,不包含不存在的成員。

命令示例

命令示例:

EXZREM testkey a

返回示例:

(integer) 1

EXZREMRANGEBYSCORE

類別

說明

語法

EXZREMRANGEBYSCORE key min max

時間復雜度

O(log(N)+M),其中,N為TairZset中元素的數量,M為待移除的元素的數量。

命令描述

移除存儲在Key(TairZset數據結構)中,分數大于等于min且小于等于max值的元素。

選項

minmax分別表示最小分數和最大分數,如Key中的元素采用了多維度的分數,各維度的分數之間使用井號(#)分隔。

說明
  • 在不確定Key中元素的最高分和最低分的情況下,如果想要移除Key中分數大于等于或小于等于某一特定值的元素,請將minmax分別設置為負無窮大(-inf)和正無窮大(+inf)。

  • 默認數據范圍為閉區間,如需指定開區間,則在分數范圍前添加半角圓括號,例如EXZREMRANGEBYSCORE (1 5表示刪除分數大于1且小于等于5的元素。

返回值

返回被移除的元素的數量。

命令示例

命令示例:

EXZREMRANGEBYSCORE testkey 3#2#4 6#6#6

返回示例:

(integer) 1

EXZREMRANGEBYRANK

類別

說明

語法

EXZREMRANGEBYRANK key start stop

時間復雜度

O(log(N)+M),其中,N為TairZset中元素的數量,M為該操作移除的元素的數量。

命令描述

移除存儲在Key(TairZset數據結構)中,級別介于startstop之間的元素。

選項

startstop均為基于零的索引值,其中,0代表分數最低的元素。 當索引值為負數,代表從最高分數元素開始的偏移量,例如-1為分數最高的元素,-2為分數第二高的元素,依此類推。

返回值

被移除的元素的數量。

命令示例

命令示例:

EXZREMRANGEBYRANK testkey 0 1EXZREVRANGEBYSCORE

返回示例:

(integer) 1

EXZREMRANGEBYLEX

類別

說明

語法

EXZREMRANGEBYLEX key min max

時間復雜度

O(log(N)+M),其中,N為TairZset中元素的數量,M為該操作移除的元素的數量。

命令描述

為確保元素按照字典序排列,當Key中所有元素分數相同時,則該命令移除存儲在Key中介于max和min之間的元素。

說明

若使用相同的minmax參數值執行該命令和EXZRANGEBYLEX命令,則該命令移除的元素與EXZRANGEBYLEX命令返回的元素相同。

選項

minmax:分別表示成員名稱的最小值和最大值(字符串形式),需指定字符的區間,例如

  • 開區間:在值的前面增加半角圓括號,例如(a

  • 閉區間:在值的前面增加方括號,例如[a

返回值

被移除的元素的數量。

命令示例

命令示例:

EXZREMRANGEBYLEX [a [b

返回示例:

(integer) 2

EXZCARD

類別

說明

語法

EXZCARD key

時間復雜度

O(1)

命令描述

返回存儲在Key(TairZset數據結構)中的基數(即元素的個數)。

選項

返回值

返回Key中的元素的數量,如果Key不存在,則返回0。

命令示例

命令示例:

EXZCARD testkey

返回示例:

(integer) 2

EXZRANK

類別

說明

語法

EXZRANK key member

時間復雜度

O(log(N))

命令描述

返回存儲在Key(TairZset數據結構)中的成員的級別,按照分數由低到高排列。 級別(或索引)從0開始計數,即分數最低的成員的級別為0。

選項

返回值

  • 當Key中存在指定的成員,則返回成員的級別(整數)。

  • 當Key或Key中的成員不存在,則返回nil。

命令示例

命令示例:

EXZRANK testkey b

返回示例:

(integer) 0

EXZREVRANK

類別

說明

語法

EXZREVRANK key member

時間復雜度

O(log(N))

命令描述

返回存儲在Key(TairZset數據結構)中的成員的級別。返回結果按照分數從高到低排列。 級別(或索引)從0開始計數,即分數最高的成員的級別為0。

說明

除排序規則相反外,本命令和EXZRANK用法類似。

選項

返回值

  • 當Key中存在指定的成員,則返回成員的級別(整數)。

  • 當Key或Key中的成員不存在,則返回nil。

命令示例

命令示例:

EXZREVRANK testkey b

返回示例:

(integer) 1

EXZCOUNT

類別

說明

語法

EXZCOUNT key min max

時間復雜度

O(log(N)),其中,N為TairZset中元素的數量。

說明

由于采用了元素級別獲取查詢范圍,該操作涉及的工作量和查詢范圍的大小即不成正比。

命令描述

返回存儲在Key(TairZset數據結構)中,分數介于minmax之間的元素的個數。

選項

minmax:分別表示最小分數和最大分數,如Key中的元素采用了多維度的分數,各維度的分數之間使用井號(#)分隔。

說明
  • 在不確定Key中元素的最高分和最低分的情況下,如果想要查詢Key中分數大于等于或小于等于某一特定值的元素,請將minmax分別設置為負無窮大和正無窮大。

  • 默認數據范圍為閉區間,如需指定開區間,則在分數范圍前添加半角圓括號,例如(1 5表示返回分數大于1且小于等于5的元素。

返回值

返回分數在指定范圍內的元素的數量(整數)。

命令示例

命令示例:

EXZCOUNT testkey (1#0#2 6#6#6

返回示例:

(integer) 1

EXZLEXCOUNT

類別

說明

語法

EXZLEXCOUNT key min max

時間復雜度

O(log(N)),其中,N為TairZset中元素的數量。

說明

由于采用了元素級別獲取查詢范圍,該操作涉及的工作量和查詢范圍的大小即不成正比。

命令描述

為確保元素按照字典序排列,若Key中所有元素分數相同,則該命令返回存儲在Key,值介于min和max之間的元素的數量。

說明
  • 如果Key中元素分數不同,則返回元素未知。

  • 采用memcmp() C函數逐個比對兩個元素字符串中的字節。根據比對結果,由低到高排列元素。 若兩個字符串包含相同的子字符串,那么字符串越長,其分值越高。

選項

minmax:分別表示成員名稱的最小值和最大值(字符串形式),需指定字符的區間,例如

  • 開區間:在值的前面增加半角圓括號,例如(a

  • 閉區間:在值的前面增加方括號,例如[a

返回值

返回分數在指定范圍內的元素的個數(整數)。

命令示例

命令示例:

EXZLEXCOUNT zzz [a [b

返回示例:

(integer) 2

EXZRANKBYSCORE

類別

說明

語法

EXZRANKBYSCORE key score

時間復雜度

O(log(N))

命令描述

計算指定的分數在Key(TairZset數據結構)中按照分數從低到高排序的排名位置。級別(或索引)從0開始計數,即分數最低的成員的級別為0。

說明

若指定的分數不存在,則返回該分數在Key(TairZset數據結構)中的預計排名;若指定的分數已存在,Tair會默認將指定的分數排在已存在的分數之前。

選項

返回值

返回指定分數在Key中的排名。

命令示例

命令示例:

EXZRANKBYSCORE testkey 2#0#2 

返回示例:

(integer) 1

EXZREVRANKBYSCORE

類別

說明

語法

EXZREVRANKBYSCORE key score

時間復雜度

O(log(N))

命令描述

計算指定的分數在Key(TairZset數據結構)中按照分數從高到低排序的排名位置。級別(或索引)從0開始計數,即分數最高的成員的級別為0。

說明

若指定的分數不存在,則返回該分數在Key(TairZset數據結構)中的預計排名;若指定的分數已存在,Tair會默認將指定的分數排在已存在的分數之后。

選項

返回值

返回指定分數在Key中的排名。

命令示例

命令示例:

EXZREVRANKBYSCORE testkey 2#0#2 

返回示例:

(integer) 1