Redis之Zset
1 Zset
有序的集合
1.1 zadd
将指定的元素添加到有序集合中
zadd k1 60 v1
zadd k1 70 v2 80 v3 90 v4 100 v5
1.2 zsorce
返回member的score值
zscore k1 v1
"60"
1.3 zrange(正序)
返回集合中的一组元素(只有values里面的key)
zrange k1 0 3
1) "vl"
2) "v2"
3) "v3"
4) "v4"
返回values里面的key和value
zrange k1 0 3 withscores //和分数一起返回
1) "vl"
2) "60"
3) "v2"
4) "70"
5) "v3"
6) "80"
7) "v4"
8) "90"
1.4 zrevrange(倒序)
返回一组元素,但是是倒序
zrevrange k1 0 3
1) "v5"
2) "v4"
3) "v3"
4) "v2"
//也可以加withscores
1.5 zcard
返回k1中元素个数
zcard k1
(integer) 5
1.6 zcount
返回score在某个区间内的元素个数(闭区间)
zcount k1 60 90
(integer) 4
加“(”就是不包含该值得意思
zcount k1 (60 90
(integer) 3
127.0.0.1:6379> zcount k1 (60 (90
(integer) 2
1.7 zrangebyscore
按照score的范围返回元素
127.0.0.1:6379> zrangebyscore k1 60 90
1) "vl"
2) "v2"
3) "v3"
4) "v4"
127.0.0.1:6379> zrangebyscore k1 60 90 withscores
1) "vl"
2) "60"
3) "v2"
4) "70"
5) "v3"
6) "80"
7) "v4"
1.8 zrank
返回member的排名(从小到大)
127.0.0.1:6379> zrank k1 v3
(integer) 2
127.0.0.1:6379> zrank k1 vl
(integer) 0
1.9 zrevrank
返回元素排名(从大到小)
127.0.0.1:6379> zrevrank k1 vl
(integer) 4
127.0.0.1:6379> zrevrank k1 v3
(integer) 2
1.10 zincrby
score自增
127.0.0.1:6379> zincrby k1 5 v4
"95"
1.11 zinterstore
给两个集合求交集
(k1,k2中有相同的v4值,对里面的v4的score进行相加,并赋予)
127.0.0.1:6379> zinterstore k4 2 k1 k2
(integer) 1
127.0.0.1:6379> zrange k4 0 -1 withscores
1) "v2"
2) "150"
1.12 zrem
弹出一个元素
zrem k1 vl
1.13 zlexcount
计算有序集合中成员数量
(-表示最小,+表示最大,“[v2 [v3”表示他两个之间有多少个成员)
127.0.0.1:6379> zlexcount k1 - +
(integer) 4
127.0.0.1:6379> zlexcount k1 [v2 [v3
(integer) 2
1.14 zrangebylex
返回指定空间内的成员
127.0.0.1:6379> zrangebylex k1 - +
1) "v2"
2) "v3"
3) "v4"
4) "v5"