zset是redis中的有序集合【sorted set】
zset就是在set基础上,每个val值前加一个score分数值。
之前set是k1 v1 v2 v3现在zset是k1 score1 v1 score2 v2
向有序集合中加入一个元素和该元素的分数
ZADD key score member [score member...]
添加元素
127. 0. 0. 1: 6379> ZADD zset1 60 v1 70 v2 80 v3 90 v4 100 v5
(integer) 5
ZRANGE key start stop [WITHSCORES]
按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素
WITHSCORES:是否带分数遍历
127.0. 0. 1: 6379> ZRANGE zset1 0 - 1
1) "v1"
2) "v2"
3) "v3"
4) "v4"
5) "v5"
127.0. 0. 1: 6379> ZRANGE zset1 0 - 1 withscores
1) "v1"
2) "60"
3) "v2"
4) "70"
5) "v3"
6) "80"
7) "v4"
8) "90"
9) "v5"
10) "100"
zrevrange
按照元素分数从大到小的顺序返回索引从start到stop之间的所有元素
WITHSCORES:是否带分数遍历
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
获取指定分数范围的元素
withscores:带分数
(:不包括
limit start numbers:限制返回个数 从start开始取numbers个
127. 0. 0. 1: 6379> ZRANGEBYSCORE zset1 60 90 //指定取值范围为60到90
1) "v1"
2) "v2"
3) "v3"
4) "v4"
127.0.0.1:6379> ZRANGEBYSCORE zset1 60 90 withscores //指定取值范围为60到90 带分数
1) "v1"
2) "60"
3) "v2"
4) "70"
5) "v3"
6)"80"
7)"v4"8)"90"
127. 0. 0. 1: 6379> ZRANGEBYSCORE zset1 (60 90 withscores //小括号:不包括60 即70到80
1) "v2"
2) "70"
3) "v3"
4) "80"
5) "v4"
6)"90"127. 0. 0. 1:6379> ZRANGEBYSCORE zset1 (60 90 withscores limit 0 1
1) "v2"
2) "70"
ZSCORE key member
获取元素的分数
zscore zset1 v5 //获取v5分数
ZCARD key
获取集合中元素的数量
zscard zset1
zrem key 某score下对应的value值
作用是删除元素
127.0. 0.1:6379> ZREM zset1 v5 // 删除v5
(integer) 1
127.0.0.1:6379> ZREM zset1 v5
(integer) 0
127.0. 0. 1:6379> ZRANGE zset1 0 - 1 withscores
1) "v1"
2) "60"
3) "v2"
4) "70"
5) "v3"
6) "80"
7) "v4"
8) "90"
ZINCRBY key increment member
增加某个元素的分数
ZINCRBY zset1 3 v1 // 给v1加3分
ZCOUNT key min max
获取指定分数范围内的元素个数
127. 0. 0. 1: 6379> ZCOUNT zset1 60 100
(integer) 4
127. 0. 0. 1: 6379> ZCOUNT zset1 65 70
(integer) 1
ZMPOP
从键名列表中的第一个非空排序集中弹出一个或多个元素,他们是成员分数对
127.0.0.1:6379> ZADD myzset 1 one 2 two 3 three
127.0.0.1:6379> ZRANGE myzset 0 - 1 withscores
one
1
two
2
three
3
127. 0. 0. 1:6379>ZMPOP 1 myzset min count 1
myzset
one
1
127.0. 0. 1:6379> ZRANGE myzset 0 - 1 withscores
two
2
three3
ZRANK key values值
作用是获得下标值
127.0. 0. 1:6379> ZRANGE zset1 0 -1
1) "v2"
2) "v3"
3)"v4"
127.0. 0. 1:6379> ZRANK zset1 v2
(integer) 0
127.0.0. 1: 6379> ZREVRANK zset1 v2
(integer) 2
ZREVRANK key values
作用是逆序获得下标值