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
作用是逆序獲得下標值