技术开发 频道

Redis详解:sorted sets数据类型及操作

  6、zrevrange

  返回名称为key的zset(按score从大到小排序)中的index从start到end的所有元素

  redis 127.0.0.1:6379> zrevrange myzset3 0 -1 withscores

  
1) "five"

  
2) "5"

  
3) "three"

  
4) "3"

  
5) "two"

  
6) "2"

  
7) "one"

  
8) "1"

  redis
127.0.0.1:6379>

  首先按score从大到小排序,再取出全部元素

  7、zrangebyscore

  返回集合中score在给定区间的元素

  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores

  
1) "one"

  
2) "1"

  
3) "two"

  
4) "2"

  
5) "three"

  
6) "3"

  
7) "five"

  
8) "5"

  redis
127.0.0.1:6379> zrangebyscore myzset3 2 3 withscores

  
1) "two"

  
2) "2"

  
3) "three"

  
4) "3"

  redis
127.0.0.1:6379>

  本例中,返回了score在2~3区间的元素

  8、zcount

  返回集合中score在给定区间的数量

  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores

  
1) "one"

  
2) "1"

  
3) "two"

  
4) "2"

  
5) "three"

  
6) "3"

  
7) "five"

  
8) "5"

  redis
127.0.0.1:6379> zcount myzset3 2 3

  (
integer) 2

  redis
127.0.0.1:6379>

  本例中,计算了score在2~3之间的元素数目

  9、zcard

  返回集合中元素个数

  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores

  
1) "one"

  
2) "1"

  
3) "two"

  
4) "2"

  
5) "three"

  
6) "3"

  
7) "five"

  
8) "5"

  redis
127.0.0.1:6379> zcard myzset3

  (
integer) 4

  redis
127.0.0.1:6379>

  从本例看出myzset3这个集全的元素数量是4

  10、zscore

  返回给定元素对应的score

  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores

  
1) "one"

  
2) "1"

  
3) "two"

  
4) "2"

  
5) "three"

  
6) "3"

  
7) "five"

  
8) "5"

  redis
127.0.0.1:6379> zscore myzset3 two

  
"2"

  redis
127.0.0.1:6379>

  此例中我们成功的将two的score取出来了。

  11、zremrangebyrank

  删除集合中排名在给定区间的元素

  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores

  
1) "one"

  
2) "1"

  
3) "two"

  
4) "2"

  
5) "three"

  
6) "3"

  
7) "five"

  
8) "5"

  redis
127.0.0.1:6379> zremrangebyrank myzset3 3 3

  (
integer) 1

  redis
127.0.0.1:6379> zrange myzset3 0 -1 withscores

  
1) "one"

  
2) "1"

  
3) "two"

  
4) "2"

  
5) "three"

  
6) "3"

  redis
127.0.0.1:6379>

  在本例中我们将myzset3中按从小到大排序结果的下标为3的元素删除了。

  12、zremrangebyscore

  删除集合中score在给定区间的元素

  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores

  
1) "one"

  
2) "1"

  
3) "two"

  
4) "2"

  
5) "three"

  
6) "3"

  redis
127.0.0.1:6379> zremrangebyscore myzset3 1 2

  (
integer) 2

  redis
127.0.0.1:6379> zrange myzset3 0 -1 withscores

  
1) "three"

  
2) "3"

  redis
127.0.0.1:6379>

  在本例中我们将myzset3中按从小到大排序结果的score在1~2之间的元素删除了。

0
相关文章