All Products
Search
Document Center

Tair (Redis® OSS-Compatible):exZset

Last Updated:Jul 10, 2025

The TairZset (exZset) data structure allows you to sort data of the DOUBLE type based on 256 dimensions. It is ideal for implementing leaderboards for use in industries such as gaming, live streaming, music, and e-commerce. TairZset improves data processing efficiency and is easy to implement on the client side because you do not need to encode, decode, or encapsulate data.

Introduction to TairZset

The Sorted Set (also known as Zset) data structure of open source Redis allows you to sort DOUBLE-typed scores only by one dimension, which makes multi-dimensional sorting difficult. For example, implementing multi-dimensional sorting by concatenating data based on IEEE 754 has limitations such as complex implementation, reduced precision, and the inability to use the EXZINCRBY command.

To help you implement multidimensional sorting, Alibaba Cloud developed the TairZset data structure. Compared with the preceding method, TairZset provides the following advantages:

  • Allows DOUBLE-typed scores to be sorted based on a maximum of 256 dimensions. The scores are displayed from left to right based on their priorities.

    In a multidimensional sorting, a left score has higher priority than a right score. Take the comparison of three-dimensional scores in the score1#score2#score3 format as an example. TairZset compares the score1s of multiple three-dimensional scores and moves on to score2s only when score1s are equal. If score1s are not equal, the ranking of score1s represents the ranking of the three-dimensional scores involved. By the same logic, score3s are compared only if score2s are equal. If all score1s are equal and the same holds true for score2s and score3s, the involved multidimensional scores are ranked in ASCII sort order.

    For easier understanding, you can imagine number signs (#) as decimal points (.). This way, 0#99 < 99#90 < 99#99 can be seen as 0.99 < 99.90 < 99.99.

  • Supports the EXZINCRBY command. You no longer need to retrieve current data, increase the value, and then write the data back to Tair.

  • Supports APIs similar to those available for open source Redis ZSET.

  • Provides regular leaderboards and distributed leaderboards capabilities.

  • An open-source TairJedis client is provided that requires no encoding, decoding, or encapsulation. You can also refer to the open-source code to implement clients for other languages.

Typical scenarios

TairZset is ideal for sorting and ranking data for use in industries such as gaming, live streaming, music, and e-commerce. The following section lists some examples:

  • Leaderboards for the live streaming industry: In live matches, commentators are sorted by their current popularity value. If the popularity value is the same, they are sorted by the number of their likes. If the number of likes is also the same, they are sorted by the value of their gifts.

  • Leaderboards for medals: Participants are sorted by the number of their gold, silver, and bronze medals. If the number of gold medals is the same, they are sorted by the number of silver medals. If the number of silver medals is also the same, they are sorted by the number of bronze medals.

  • Leaderboards for the gaming industry: Players are sorted based on multiple factors, including their scores, task completion speeds, and achievement levels.

This module is open-source. For more information, see TairZset.

Best practices

Prerequisite

The instance is a Tair memory-optimized instance. If the instance is compatible with Redis 5.0, the minor version must be 1.7.1 or later.

Note

The latest minor version provides more features and higher stability. We recommend that you update the instance to the latest minor version. For more information, see Update the minor version of an instance. If your instance is a cluster instance or read/write splitting instance, we recommend that you update the proxy nodes in the instance to the latest minor version to ensure that all commands can be run as expected.

Precautions

The operations apply to TairZset data in a Tair instance.

Command list

Command

Syntax

Description

EXZADD

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

Stores the specified score and element information in a TairZset key. You can specify multiple scores and elements.

Note

To implement multidimensional sorting, you can separate the scores of each dimension with number signs (#). Example: 111#222#121. All elements of a key must have the same score format.

EXZINCRBY

EXZINCRBY key increment member

Increases the score of an element in a TairZset key. increment indicates the value that you want to add to the score.

EXZSCORE

EXZSCORE key member

Returns the score of an element in a TairZset key. If the key or element does not exist, a value of nil is returned.

EXZRANGE

EXZRANGE key min max [WITHSCORES]

Returns the elements of a TairZset key within the specified score range.

EXZREVRANGE

EXZREVRANGE key min max [WITHSCORES]

Returns the elements of a TairZset key within the specified score range. Elements are stored by score in descending order, and elements with the same score are sorted in reverse lexicographical order.

Note

This command is similar to EXZRANGE except that this command sorts the results in reverse.

EXZRANGEBYSCORE

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

Returns the elements of a TairZset key whose scores are greater than or equal to the min value and are less than or equal to the max value. The returned elements are sorted by score in ascending order, and elements with the same score are returned in lexicographical order.

EXZREVRANGEBYSCORE

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

Returns the elements of a TairZset key whose scores are greater than or equal to the min value and are less than or equal to the max value. Contrary to the default sorting of TairZset elements, the elements returned by this command are sorted by score in descending order, and elements with the same score are sorted in reverse lexicographical order.

Note

This command is similar to EXZRANGEBYSCORE except that this command sorts the results in reverse and places max in front of min.

EXZRANGEBYLEX

EXZRANGEBYLEX key min max [LIMIT offset count]

To ensure elements are sorted in lexicographical order, when all elements in the Key have the same score, this command returns elements stored in the Key whose values are between min and max.

EXZREVRANGEBYLEX

EXZREVRANGEBYLEX key max min [LIMIT offset count]

Returns the elements whose scores are between the min value and the max value when all elements of a key have the same score to ensure that elements are sorted in lexicographical order.

Note

This command is similar to EXZRANGEBYLEX except that this command sorts the results in reverse and places max in front of min.

EXZREM

EXZREM key member [member ...]

Removes specified members from a TairZset key. If a specified member does not exist, the member is ignored.

EXZREMRANGEBYSCORE

EXZREMRANGEBYSCORE key min max

Removes the elements whose scores are greater than or equal to the min value and are less than or equal to the max value from a TairZset key.

EXZREMRANGEBYRANK

EXZREMRANGEBYRANK key start stop

Removes the elements whose ranks are within the range of the start value and the stop value from a TairZset key.

EXZREMRANGEBYLEX

EXZREMRANGEBYLEX key min max

Removes the elements whose scores are between the min value and the max value when all elements of a key have the same score to ensure that elements are sorted in lexicographical order.

Note

If you use the same min and max parameter values for this command and the EXZRANGEBYLEX command, the elements removed by this command are the same as those returned by the EXZRANGEBYLEX command.

EXZCARD

EXZCARD key

Returns the cardinality of a TairZset key. Cardinality indicates the number of elements in a key.

EXZRANK

EXZRANK key member

Returns the rank of an element in a TairZset key. Ranks are sorted by score in ascending order. Ranks use a zero-based numbering scheme, which indicates that the rank of the element that has the lowest score is 0. Rank is also known as index.

EXZREVRANK

EXZREVRANK key member

Returns the rank of an element in a TairZset key. Ranks are sorted by score in descending order. Ranks use a zero-based numbering scheme, and the rank of the element that has the highest score is 0. Rank is also known as index.

Note

This command is similar to EXZRANK except that this command sorts the results in reverse.

EXZCOUNT

EXZCOUNT key min max

Returns the number of elements in a TairZset key whose scores are between the min value and the max value.

EXZLEXCOUNT

EXZLEXCOUNT key min max

Returns the number of elements in a TairZset key whose scores are between the min value and the max value when all elements of the key have the same score. This ensures that elements are sorted in lexicographical order.

EXZRANKBYSCORE

EXZRANKBYSCORE key score

Calculates the rank of the specified score in a TairZset key. Ranks are sorted by score in ascending order. Ranks use a zero-based numbering scheme, which indicates that the rank of the element that has the lowest score is 0. Rank is also known as index.

Note

If the score does not exist, the estimated rank of the score in the key is returned. By default, if the score already exists, Tair ranks the score in front of the existing score in the key.

EXZREVRANKBYSCORE

EXZREVRANKBYSCORE key score

Calculates the rank of the specified score in a TairZset key. Ranks are sorted by score in descending order. Ranks use a zero-based numbering scheme, and the rank of the element that has the highest score is 0. Rank is also known as index.

Note

If the score does not exist, the estimated rank of the score in the key is returned. If the score already exists, Tair ranks the score behind other existing scores in the key by default.

DEL

DEL key [key ...]

Deletes one or more TairZset keys.

Note

The following list describes the conventions for the command syntax used in this topic:

  • Uppercase keyword: indicates the command keyword.

  • Italic text: indicates variables.

  • [options]: indicates that the enclosed parameters are optional. Parameters that are not enclosed by brackets must be specified.

  • A|B: indicates that the parameters separated by the vertical bars (|) are mutually exclusive. Only one of the parameters can be specified.

  • ...: indicates that the parameter preceding this symbol can be repeatedly specified.

EXZADD

Item

Description

Syntax

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

Time complexity

O(N)

Command description

Adds the specified element with the specified score to a TairZset key. You can specify multiple scores and elements. The system uses different strategies based on whether the key and element exist:

Note

To implement multidimensional sorting, you can separate the scores of each dimension with number signs (#). Example: 111#222#121. All elements of a key must have the same score format.

  • If the key exists but its data structure is not TairZset, an error is returned.

  • If the key does not exist, the system creates a TairZset key and adds the specified element to the key.

  • If the element is already an element of the key, the score of the element is updated and the element is reinserted into the right position to avoid disruptions to sorting.

  • Each score is represented by a string of double-precision floating-point numbers. The +inf and -inf values are valid values.

Parameters

  • NX: adds new elements and does not update existing elements.

  • XX: updates existing elements and does not add new elements.

  • CH: changes the command output from the number of new elements added to the total number of elements that have changed.

    Note

    Changed elements include new elements and existing elements with updated scores. If the score of an existing element in the command line does not change, the element is not counted as a changed element.

  • INCR: When this parameter is specified, EXZADD acts similarly to EXZINCRBY, which indicates that only one pair of score and element can be specified in this mode.

Output

The return value is an integer. The following rules describe the return value:

  • If no parameters are specified, the return value is the number of elements added to a TairZset key.

  • If the CH parameter is specified, the return value is the number of elements that have changed (elements that have been added or updated).

  • If the INCR parameter is specified, the command returns the new score of the element as a string. If multidimensional scores are used, the score is returned in the "score1#score2#score3#..." format. Example: 2#0#6.

    Note

    If this command is stopped because the XX or NX parameter is included in this command, a value of nil is returned.

Example

Sample command:

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

Sample output:

(integer) 2

EXZINCRBY

Item

Description

Syntax

EXZINCRBY key increment member

Time complexity

O(log(N))

Command description

Increases the score of an element in a TairZset key. increment indicates the value that you want to add to the score. The system uses different strategies based on whether the key and element exist:

  • If the specified key exists but its data structure is not TairZset, an error is returned.

  • If the specified key does not exist, the system creates a TairZset key and uses the specified element as the only element of the key.

  • If the specified key has no element, the system adds an element whose score is the increment parameter value to the key, which indicates that the original score of the element is assumed to be 0.0.

Note
  • To implement multidimensional sorting, you can separate the scores of each dimension with number signs (#). Example: 111#222#121. All elements of a key must have the same score format.

  • The score value is a string of numeric values and can be a string of double-precision floating-point numbers. If you want to lower the score of an element, specify a negative number.

Options

None

Output

Returns the new score of the member as a string. If multidimensional scores are used, the score format is "score1#score2#score3#...", for example 2#0#6.

Example

Sample command:

EXZINCRBY testkey 2#2#1 a

Sample output:

"3#2#4"

EXZSCORE

Item

Description

Syntax

EXZSCORE key member

Time complexity

O(1)

Command description

Returns the score of an element in a TairZset key. If the key or element does not exist, a value of nil is returned.

Parameters

None

Output

Returns the score of an element as a string. If multidimensional scores are used, the scores are returned in the "score1#score2#score3#..." format. Example: 2#0#6.

Example

Sample command:

EXZSCORE testkey a

Sample output:

"3#2#4"

EXZRANGE

Item

Description

Syntax

EXZRANGE key min max [WITHSCORES]

Time complexity

O(log(N)+M), where N indicates the number of elements in the TairZset key and M indicates the number of elements returned.

Command description

Returns the elements of a TairZset key within the specified score range.

Parameters

  • min and max: indicate zero-based indexes, where 0 is the first element and 1 is the next element. Other elements follow the same rule. You can use these two parameters to specify a closed interval.

    Note
    • The indexes can also be negative numbers, which indicate offsets from the end of TairZset elements returned. For example, -1 indicates the last element of a key and -2 indicates the second to last element of a key. Other elements follow the same rule.

    • To query all elements, you can set min to 0 and max to -1.

    • If the min value is greater than the index of the last element of the key or the max value, an empty list is returned.

  • WITHSCORES: returns the scores of elements in the response. The returned list format is value1, score1, ..., valueN, scoreN, for example:

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

Output

Returns a list of elements within the specified range. If the WITHSCORES option is used, the scores of the elements are included in the results.

Example

Sample command:

EXZRANGE testkey 0 -1 WITHSCORES

Sample output:

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

EXZREVRANGE

Item

Description

Syntax

EXZREVRANGE key min max [WITHSCORES]

Time complexity

O(log(N)+M), where N indicates the number of elements in the TairZset key and M indicates the number of elements returned.

Command description

Returns the elements of a TairZset key within the specified score range. Elements are stored by score in descending order, and elements with the same score are sorted in reverse lexicographical order.

Note

This command is similar to EXZRANGE except that this command sorts the results in reverse.

Parameters

  • min and max: indicate zero-based indexes, where 0 is the first element and 1 is the next element. Other elements follow the same rule. You can use these two parameters to specify a closed interval.

    Note
    • The indexes can also be negative numbers, which indicate offsets from the end of TairZset elements returned. For example, -1 indicates the last element of a key and -2 indicates the second to last element of a key. Other elements follow the same rule.

    • To query all elements, you can set min to 0 and max to -1.

    • If the min value is greater than the index of the last element of the key or the max value, an empty list is returned.

  • WITHSCORES: returns the scores of elements in the response. The returned list format is value1, score1, ..., valueN, scoreN, for example:

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

Output

Returns a list of elements within the specified range. If the WITHSCORES option is used, the scores of the elements are included in the results.

Example

Sample command:

EXZREVRANGE testkey 0 -1 WITHSCORES

Sample output:

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

EXZRANGEBYSCORE

Item

Description

Syntax

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

Time complexity

O(log(N)+M), where N indicates the number of elements in the TairZset key and M indicates the number of elements to be returned.

Note

When M is set to a constant, this expression can be regarded as O(log(N)). For example, you can specify that the first 10 elements are always returned by using the LIMIT offset count parameter.

Command description

Returns the elements of a TairZset key whose scores are greater than or equal to the min value and are less than or equal to the max value. The returned elements are sorted by score in ascending order, and elements with the same score are returned in lexicographical order.

Parameters

  • min, max: indicate the lowest score and the highest score, respectively. If multidimensional scores are used in the key's elements, scores of each dimension are separated by number signs (#).

    Note
    • If you are not sure about the highest and lowest element scores of a key and you want to query elements whose scores are greater than or equal to or less than or equal to a specific value, set min and max to minus infinity (-inf) and positive infinity (+inf), respectively.

    • The default score range is a closed interval. To specify an open interval, add a parenthesis before the score range. For example, (1 5 indicates that elements whose scores are greater than 1 and less than or equal to 5 are returned.

  • WITHSCORES: includes the scores of elements in the returned values.

  • LIMIT offset count: specifies the number and interval of returned elements. If count is a negative number, all elements starting from the offset are returned.

    Note

    If the offset value is large, the entire key needs to be traversed to locate the offset element before elements can be returned, which increases time complexity.

Output

Returns a list of elements within the specified score range. If the WITHSCORES option is used, the scores of the elements are included in the results.

Sample command

Sample command:

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

Sample output:

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

EXZREVRANGEBYSCORE

Item

Description

Syntax

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

Time complexity

O(log(N)+M), where N indicates the number of elements in TairZset, and M indicates the number of elements returned.

Note

When M is set to a constant, this expression can be regarded as O(log(N)). For example, you can specify that the first 10 elements are always returned by using the LIMIT parameter.

Command description

Returns the elements of a TairZset key whose scores are greater than or equal to the min value and are less than or equal to the max value. Contrary to the default sorting of TairZset elements, the elements returned by this command are sorted by score in descending order, and elements with the same score are sorted in reverse lexicographical order.

Note

This command is similar to EXZRANGEBYSCORE except that this command sorts the results in reverse and places max in front of min.

Parameters

  • min, max: indicate the lowest score and the highest score, respectively. If multidimensional scores are used in the key's elements, scores of each dimension are separated by number signs (#).

    Note
    • If you are not sure about the highest and lowest element scores of a key and you want to query elements whose scores are greater than or equal to or less than or equal to a specific value, set min and max to minus infinity (-inf) and positive infinity (+inf), respectively.

    • The default score range is a closed interval. To specify an open interval, add a parenthesis before the score range. For example, (1 5 indicates that elements whose scores are greater than 1 and less than or equal to 5 are returned.

  • WITHSCORES: includes the scores of elements in the returned values.

  • LIMIT offset count: specifies the number and interval of returned elements. If count is a negative number, all elements starting from the offset are returned.

    Note

    If the offset value is large, the entire key needs to be traversed to locate the offset element before elements can be returned, which increases time complexity.

Output

Returns a list of elements within the specified score range. If the WITHSCORES option is used, the scores of the elements are included in the results.

Sample command

Sample command:

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

Sample response:

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

EXZRANGEBYLEX

Item

Description

Syntax

EXZRANGEBYLEX key min max [LIMIT offset count]

Time complexity

O(log(N)+M), where N indicates the number of elements in the TairZset key and M indicates the number of elements to be returned.

Note

When M is set to a constant (for example, when you use the LIMIT parameter to specify that the first 10 elements are returned), this expression can be regarded as O(log(N)).

Command description

To ensure elements are sorted in lexicographical order, when all elements in the Key have the same score, this command returns elements stored in the Key whose values are between min and max.

Note
  • If the elements of a key have different scores, the returned elements are unknown.

  • The memcmp() C function is used to compare two string elements byte-by-byte. Elements are sorted in ascending order based on the preceding comparison. If two strings contain the same substring, the longer string is assigned a greater value than the shorter string.

Parameters

  • min and max: indicate the minimum and maximum values of the element name (in string format). You must specify the intervals of characters, for example:

    • Open interval: add a parenthesis before the value, for example (a.

    • Closed interval: add a bracket before the value, for example [a

    Note

    Positive and negative infinity are represented by + and - respectively.

  • LIMIT offset count: specifies the number and interval of returned elements. If count is a negative number, all elements starting from the offset are returned.

    Note

    If offset is large, the entire key needs to be traversed to locate the offset element before elements can be returned, which increases time complexity.

Output

A list of elements whose values are within the specified range.

Sample command

Sample command:

EXZRANGEBYLEX zzz [a [b

Sample output:

1) "aba"
2) "abc"

EXZREVRANGEBYLEX

Item

Description

Syntax

EXZREVRANGEBYLEX key max min [LIMIT offset count]

Time complexity

O(log(N)+M), where N indicates the number of elements in the TairZset key and M indicates the number of elements to be returned.

Note

When M is set to a constant, this expression can be regarded as O(log(N)). For example, you can specify that the first 10 elements are always returned by using the LIMIT offset count parameter.

Command description

Returns the elements whose scores are between the min value and the max value when all elements of a key have the same score to ensure that elements are sorted in lexicographical order.

Note

This command is similar to EXZRANGEBYLEX except that this command sorts the results in reverse and places max in front of min.

Parameters

  • min and max: indicate the minimum and maximum values of the element name (in string format). You must specify the intervals of characters, for example:

    • Open interval: add a parenthesis before the value, for example (a.

    • Closed interval: add a bracket before the value, for example [a

    Note

    Positive and negative infinity are represented by + and - respectively.

  • LIMIT offset count: specifies the number and interval of returned elements. If count is a negative number, all elements starting from the offset are returned.

    Note

    If offset is large, the entire key needs to be traversed to locate the offset element before elements can be returned, which increases time complexity.

Output

A list of elements whose values are within the specified range.

Sample command

Sample command:

EXZREVRANGEBYLEX zzz [b [a

Sample output:

1) "abc"
2) "aba"

EXZREM

Item

Description

Syntax

EXZREM key member [member ...]

Time complexity

O(M*log(N)), where N indicates the number of elements in the TairZset key and M indicates the number of elements to be removed.

Command description

Removes specified members from a TairZset key. If a specified member does not exist, the member is ignored.

Note

If the key exists but its data structure is not TairZset, an error is returned.

Options

None

Output

The number of members removed from the key. The members that do not exist are not included.

Sample command

Sample command:

EXZREM testkey a

Sample output:

(integer) 1

EXZREMRANGEBYSCORE

Item

Description

Syntax

EXZREMRANGEBYSCORE key min max

Time complexity

O(log(N)+M), where N indicates the number of elements in the TairZset key and M indicates the number of elements to be removed.

Command description

Removes the elements whose scores are greater than or equal to the min value and are less than or equal to the max value from a TairZset key.

Parameters

min and max indicate the lowest score and the highest score, respectively. If multidimensional scores are used in the key's elements, scores of each dimension are separated by number signs (#).

Note
  • If you are not sure about the highest and lowest element scores of a key and you want to remove elements whose scores are greater than or equal to or are less than or equal to a specific value, set min and max to minus infinity (-inf) and positive infinity (+inf), respectively.

  • The default score range is a closed interval. To specify an open interval, add a parenthesis before the score range. For example, EXZREMRANGEBYSCORE (1 5 indicates that elements whose scores are greater than 1 and are less than or equal to 5 are deleted.

Output

The number of elements removed.

Sample command

Sample command:

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

Sample output:

(integer) 1

EXZREMRANGEBYRANK

Item

Description

Syntax

EXZREMRANGEBYRANK key start stop

Time complexity

O(log(N)+M), where N indicates the number of elements in the TairZset key and M indicates the number of elements to be removed.

Command description

Removes the elements whose ranks are within the range of the start value and the stop value from a TairZset key.

Parameters

start and stop both indicate zero-based indexes, where 0 represents the element that has the lowest score. These indexes can be negative numbers. These numbers indicate offsets that start at the element that has the highest score. For example, -1 indicates the element that has the highest score, and -2 indicates the element that has the second highest score. Other elements follow the same rule.

Output

The number of elements removed.

Sample command

Sample command:

EXZREMRANGEBYRANK testkey 0 1EXZREVRANGEBYSCORE

Sample output:

(integer) 1

EXZREMRANGEBYLEX

Item

Description

Syntax

EXZREMRANGEBYLEX key min max

Time complexity

O(log(N)+M), where N indicates the number of elements in the TairZset key and M indicates the number of elements to be removed.

Command description

Removes the elements of a TairZset key whose scores are between the max value and the min value when all elements of the key have the same score. This ensures that elements are sorted in lexicographical order.

Note

If you use the same min and max parameter values for this command and the EXZRANGEBYLEX command, the elements removed by this command are the same as those returned by the EXZRANGEBYLEX command.

Parameters

min and max: indicate the minimum and maximum values of the element name (in string format). You need to specify the character intervals, for example:

  • Open interval: add a parenthesis before the value, for example (a.

  • Closed interval: add a bracket before the value, for example [a

Output

The number of elements removed.

Sample command

Sample command:

EXZREMRANGEBYLEX [a [b

Sample output:

(integer) 2

EXZCARD

Item

Description

Syntax

EXZCARD key

Time complexity

O(1)

Command description

Returns the cardinality of a TairZset key. Cardinality indicates the number of elements in a key.

Parameters

None

Output

The number of elements in a TairZset key. If the key does not exist, a value of 0 is returned.

Sample command

Sample command:

EXZCARD testkey

Sample output:

(integer) 2

EXZRANK

Item

Description

Syntax

EXZRANK key member

Time complexity

O(log(N))

Command description

Returns the rank of an element in a TairZset key. Ranks are sorted by score in ascending order. Ranks use a zero-based numbering scheme, which indicates that the rank of the element that has the lowest score is 0. Rank is also known as index.

Options

None

Output

  • If the specified element exists, the integer rank of the element is returned.

  • If the key or element does not exist, a value of nil is returned.

Sample command

Sample command:

EXZRANK testkey b

Sample output:

(integer) 0

EXZREVRANK

Item

Description

Syntax

EXZREVRANK key member

Time complexity

O(log(N))

Command description

Returns the rank of an element in a TairZset key. Ranks are sorted by score in descending order. Ranks use a zero-based numbering scheme, and the rank of the element that has the highest score is 0. Rank is also known as index.

Note

This command is similar to EXZRANK except that this command sorts the results in reverse.

Parameters

None

Output

  • If the specified element exists, the integer rank of the element is returned.

  • If the key or element does not exist, a value of nil is returned.

Sample command

Sample command:

EXZREVRANK testkey b

Sample output:

(integer) 1

EXZCOUNT

Item

Description

Syntax

EXZCOUNT key min max

Time complexity

O(log(N)), where N indicates the number of elements in the TairZset key.

Note

This command uses element ranks to obtain the query range. Therefore, the workloads associated with this command are not proportional to the size of the range.

Command description

Returns the number of elements in a TairZset key whose scores are between the min value and the max value.

Parameters

min and max: indicate the lowest score and the highest score, respectively. If multidimensional scores are used in the key's elements, scores of each dimension are separated by number signs (#).

Note
  • If you are not sure about the highest and lowest element scores of a key and you want to query elements whose scores are greater than or equal to or less than or equal to a specific value, set min and max to minus infinity and positive infinity, respectively.

  • The default data range is a closed interval. To specify an open interval, add a parenthesis before the score range. For example, (1 5 indicates that elements whose scores are greater than 1 and less than or equal to 5 are returned.

Output

The integer number of elements within the specified score range.

Sample command

Sample command:

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

Sample output:

(integer) 1

EXZLEXCOUNT

Item

Description

Syntax

EXZLEXCOUNT key min max

Time complexity

O(log(N)), where N indicates the number of elements in the TairZset key.

Note

This command uses element ranks to obtain the query range. Therefore, the workloads associated with this command are not proportional to the size of the range.

Command description

Returns the number of elements in a TairZset key whose scores are between the min value and the max value when all elements of the key have the same score to ensure that elements are sorted in lexicographical order.

Note
  • If the elements of a key have different scores, the returned elements are unknown.

  • The memcmp() C function is used to compare bytes in two element strings one by one. Elements are sorted in ascending order based on the comparison results. If two strings contain the same substring, the longer string is assigned a higher value.

Parameters

min and max: indicate the minimum and maximum values of the element name (in string format). You need to specify the character interval, for example:

  • Open interval: Add a parenthesis before the value, for example (a.

  • Closed interval: Add a bracket before the value, for example [a

Output

The integer number of elements within the specified score range.

Sample command

Sample command:

EXZLEXCOUNT zzz [a [b

Sample output:

(integer) 2

EXZRANKBYSCORE

Item

Description

Syntax

EXZRANKBYSCORE key score

Time complexity

O(log(N))

Command description

Calculates the rank of the specified score in a TairZset key. Ranks are sorted by score in ascending order. Ranks use a zero-based numbering scheme, which indicates that the rank of the element that has the lowest score is 0. Rank is also known as index.

Note

If the score does not exist, the estimated rank of the score in the key is returned. By default, if the score already exists, Tair ranks the score in front of the existing score in the key.

Parameters

None

Output

Returns the rank of the specified score in the key.

Sample command

Sample command:

EXZRANKBYSCORE testkey 2#0#2 

Sample response:

(integer) 1

EXZREVRANKBYSCORE

Item

Description

Syntax

EXZREVRANKBYSCORE key score

Time complexity

O(log(N))

Command description

Calculates the rank of the specified score in a TairZset key. Ranks are sorted by score in descending order. Ranks use a zero-based numbering scheme, and the rank of the element that has the highest score is 0. Rank is also known as index.

Note

If the score does not exist, the estimated rank of the score in the key is returned. If the score already exists, Tair ranks the score behind other existing scores in the key by default.

Parameters

None

Output

Returns the rank of the specified score in the key.

Sample command

Sample command:

EXZREVRANKBYSCORE testkey 2#0#2 

Sample output:

(integer) 1