redis ordered set zset is very similar to an ordinary set, it is a string collection without repeated elements.
The difference is that each member of the ordered set is associated with a score, and this score is used to sort the members of the set from the lowest score
to the highest score.
The members of the collection are unique, but the ratings can be repeated.
Because the elements are ordered, you can quickly get a range of elements
based on score or position.
Accessing intermediate elements in an ordered set is also very fast, because you can use the ordered set as a smart column
table without duplicate members.
zadd: Add elements
zrange: score ascending order, get the elements of the specified index range
Return stored in the ordered set key elements of the specified range. The returned elements can be thought of as being sorted by score from lowest to highest. If the scores are the same, they will be sorted lexicographically.
The subscript parameters start and stop are both base 0, that is to say, 0 represents the first member of the ordered set, 1 represents
the second member of the ordered set, and so on.
You can also use negative subscripts, with -1 representing the last member, -2 representing the second to last member, and so on.
zrange key 0 -1: All elements can be obtained
withscores: Return the member and its score value together, and the return list is expressed in the format of value1, score1, …, valueN, scoreN
Available versions:
= 1.2.0Time complexity:
O(log(N) M), N is the cardinality of the ordered set, and M is the cardinality of the result set.
Return value:
List of ordered set members with score value (optional) in the specified interval
zrevrange: score descending order, obtain the specified index range Element Returns the specified range of elements stored in the sorted collection key. The returned elements can be considered to be arranged from highest to lowest score
. If the scores are the same, they will be sorted by dictionary.
The subscript parameters start and stop are both base 0, that is to say, 0 represents the first member of the ordered set, 1 represents
the second member of the ordered set, and so on.
You can also use negative subscripts, with -1 representing the last member, -2 representing the second to last member, and so on.
withscores: Return the member and its score value together. The return list is expressed in the format of value1, score1, …, valueN, scoreN
zrangebyscore : Return data within the specified score range in ascending order by score
zincrby: Add the specified increment to the score of the specified element
zrem: Delete multiple elements in the collection
zremrangebyrank: Delete elements based on the index range
zremrangebyscore: Based on Delete elements from the range of score
zcount: Count the number of elements within the specified score range
zrank: According to score In ascending order, return the ranking of an element in the set
zrevrank: In descending order of score, return the ranking of an element in the set
zscore: Returns the score of the specified element in the collection
Data structure
SortedSet (zset) is a very special data structure provided by redis. Two data structures are used internally.
1. Hash table
is similar to Map
the element. The time complexity is O(1)
2. Skip list
The skip list is a very excellent data structure with simple implementation. The complexity of insertion, deletion and search is O(logN).
Similar to ConcurrentSkipListSet in java, a skip list is generated after sorting according to the score value. You can quickly query elements in the order of position
or the order of score.
The above is the detailed content of What are the knowledge points of Redis ordered set zset?. For more information, please follow other related articles on the PHP Chinese website!