redis語序集合和集合set
是一樣內部value
為string
類型的集合,有序不允許重復元素
但是,zset
的每個元素有一個double
類型的分數(score
).redis正是靠這個分數對元素從小到大排序.
zset
中元素唯一但是分數可以重復
增
zadd
zdd key score value [score2 value2] ...
往zset
中添加一個后多個元素
127.0.0.1:6379> zadd student 9 zhangsan
(integer) 1
如果元素之前已存在,那么相當於更新分數,那么如果分數也和之前的一樣,就相當於什么都不做
查詢
zcard
zcard key
獲取有序集合內部的成員數
127.0.0.1:6379> zcard student
(integer) 4
zcount
zcount key min max
計算有序集合指定分數區間的成員數
zlexcount
zlexcount key min max
在有序集合中計算指定字典區間的元素數量
zrank
zrank key value
查詢值在有序列表中的索引位置
zrange
zrangge key start end
通過索引區間返回該區間的元素
127.0.0.1:6379> zrange zset1 0 5
1) "a"
2) "b"
3) "c"
4) "t"
5) "h"
6) "k"
修改
zincrby
zincrby key increment value
指定元素的分數自增,increment
為增量
刪除
zrem
zrem key value [value2] ...
移除有序集合中一個或多個元素
zremrangebyrank
zremrangebyrank key start stop
根據分數排名移除元素
127.0.0.1:6379> zrange zset1 0 5
1) "a"
2) "b"
3) "c"
4) "t"
5) "h"
6) "k"
127.0.0.1:6379> zremrangebyrank zset1 2 3
(integer) 2
zremrangebyscore
zremrangebyscore key min max
根據分數范圍去移除元素