⑤Redis Zset 操作命令汇总
- Zset和set一样都是String类型的不可重复集合,但是有序的 。
- ZSet集合是通过哈希表实现的,添加、删除、查找的复杂度都是O(1) 。
- 每个元素都会关联一个double类型的分数,以此为集合成员进行由小到大的排序 。
快速理解:
Zset就是在set的基础上,每个值前加一个分数值
之前set是k1 v1 v2
现Zset是k1 score1 v1 score2 v2
1. zadd 添加或更新一个或多个成员
zadd key score member [score member ...]
# 有序集合z1,成员a b c分数值分别为10 20 30 zadd z1 10 a 20 b 30 c
2. zrange 返回指定区间范围的有序集合成员
zrange key start stop [WITHSCORES]
# 获取指定区间范围的有序集合成员,0值-1代表所有范围 zrange z1 0 -1 # withscores可选参数,可将成员的分数值一并输出 zrange z1 0 -1 withscores
3. zrevrange 根据分数从高到低,返回指定区间范围的有序集合成员
zrevrange key start stop [WITHSCORES]
# 根据分数从高到低,获取指定区间范围的有序集合成员,0值-1代表所有范围 zrevrange z1 0 -1 # withscores可选参数,可将成员的分数值一并输出 zrevrange z1 0 -1 withscores
4. zrangebyscore 获取指定分数范围的成员
zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
# 获取指定分数值范围的有序集合成员 zrangebyscore z1 10 30 # (10 30即:10值30范围但不包含10 zrangebyscore z1 (10 30 # 10 (30即:10值30范围但不包含30 zrangebyscore z1 10 (30 # withscores可选参数,可将成员的分数值一并输出 zrangebyscore z1 10 30 withscores
5. zscore 获取指定成员的分数值
zscore key member
# 获取有序集合z1中指定成员的分数值 zscore z1 a zscore z1 b zscore z1 c
6. zcard 获取集合中成员的数量
zcard key
# 获取有序集合z1中成员的个数 zcard z1
7. zrem 移除有序集合中一个或多个成员
zrem key member [member ...]
# 移除有序集合z1中指定的成员 zrem z1 a b
8. zincrby 为指定成员的分数值添加增量
zincrby key increment member
# 为有序集合Z1成员c的分数值添加增量36,返回运算后的分数值 zrem z1 a b
9. zcount 获取指定分数范围内的成员数量
zcount key min max
# 获取指定分数范围内的成员数量 zcount z1 30 70
10. zmpop 从有序集合中移除第一个非空排序集合(可设置数量)
zmpop numkeys key [key ...] MIN|MAX [COUNT count]
# zmpop 移除个数 有序集合 min|max count 限制数 zmpop 1 z1 min count 1
11. zrank 获取指定成员的下标索引
zrank key member
# 获取z1中指定成员的下标索引 zrank z1 cpp zrank z1 java
12. zrevrank 逆序地获取指定成员的下标索引
zrevrank key member
# 逆序获取z1中指定成员的下标索引 zrevrank z1 cpp zrevrank z1 java