与set集合不同的是,zset是有序的
zadd
将一个或多个member元素及其score值加入到有序集合key当中
语法:zadd <key> <score1> <value1> <score2> <value2> ……
1 2 3 4 5 6 7
| # 向top中添加以下三个元素 # value score # c++ 100 # java 200 # javascript 150 127.0.0.1:6379> zadd top 100 c 200 java 150 javascript (integer) 3
|
zrange
返回有序集合key中,下标在start和stop之间的元素(包括start和stop)
参数带withscores则表示将分数和值一起返回到结果集中
start=0,stop=-1表示取出zset集合中所有的元素
返回结果集为升序排序
语法:zrange <key> <start> <stop> [withscores]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| # 返回下标在0~1的元素 127.0.0.1:6379> zrange top 0 1 1) "c" 2) "javascript" # 返回下标在1~2的元素 127.0.0.1:6379> zrange top 1 2 1) "javascript" 2) "java" # 返回下标在0~2的元素 127.0.0.1:6379> zrange top 0 2 1) "c" 2) "javascript" 3) "java" # 返回所有元素,包括score 127.0.0.1:6379> zrange top 0 -1 withscores 1) "c" 2) "100" 3) "javascript" 4) "150" 5) "java" 6) "200"
|
zrangebyscore
取出zset中score在min和max之间的元素(包括score等于min和max的元素)
参数带withscores则表示将分数和值一起返回到结果集中
结果集为升序排序
语法:zrangebyscore key min max [withscores]
1 2 3 4 5 6 7 8 9 10 11
| # 取出score在[100,200]的元素 127.0.0.1:6379> zrangebyscore top 100 200 1) "c" 2) "javascript" 3) "java" # 取出score在[150,200]的元素,参数带withscores 127.0.0.1:6379> zrangebyscore top 150 200 withscores 1) "javascript" 2) "150" 3) "java" 4) "200"
|
zrevrange
返回有序集合key中,下标在start和stop之间的元素(包括start和stop)
参数带withscores则表示将分数和值一起返回到结果集中
start=0,stop=-1表示取出zset集合中所有的元素
返回结果集为降序排序
语法:zrevrange <key> <start> <stop> [withscores]
1 2 3 4 5 6 7 8 9 10 11 12 13
| # 返回top集合中的所有元素 127.0.0.1:6379> zrevrange top 0 -1 1) "java" 2) "javascript" 3) "c" # 带结果集 127.0.0.1:6379> zrevrange top 0 -1 withscores 1) "java" 2) "200" 3) "javascript" 4) "150" 5) "c" 6) "100"
|
zrevrangbyscore
取出zset中score在min和max之间的元素(包括score等于min和max的元素)
参数带withscores则表示将分数和值一起返回到结果集中
结果集为降序排序
语法:zrevrangebyscore key max min [withscores]
注意min和max的位置
1 2 3 4 5 6 7 8 9 10 11 12
| # 取出score在[100,200]的元素 127.0.0.1:6379> zrevrangebyscore top 200 100 127.0.0.1:6379> zrevrangebyscore top 200 100 1) "java" 2) "javascript" 3) "c" # 取出score在[150,200]的元素,参数带withscores 127.0.0.1:6379> zrevrangebyscore top 200 150 withscores 1) "java" 2) "200" 3) "javascript" 4) "150"
|
zincrby
为我们的元素value的score加上增量increment
语法:zincrby <key> <increment> <value>
1 2 3
| # 为java的score加上增量100 127.0.0.1:6379> zincrby top 100 java "300"
|
zrem
删除指定zset集合下,指定值value的元素
语法:zrem <key> <value>
1 2 3 4 5 6 7
| #删除top中的java 127.0.0.1:6379> zrem top java (integer) 1 # 查看该zset集合的所有值 127.0.0.1:6379> zrange top 0 -1 1) "c" 2) "javascript"
|
zrank
返回值value在集合zset中的排名,从0开始
语法:zrank <key> <value>
1 2 3 4 5 6
| # 返回c在top中的排名 127.0.0.1:6379> zrank top c (integer) 0 # 返回javascript在top中的排名 127.0.0.1:6379> zrank top javascript (integer) 1
|