2.8 Redis数据类型_Zset 🎉
...大约 2 分钟
2.8 Redis数据类型_Zset 🎉
Zset与Set非常相似,是一个没有重复元素的String集合。不同之处是Zset的每个元素都关联了一个分数(score),这个分数被用来按照从低分到高分的方式排序集合中的元素。集合的元素是唯一的,但分数可以重复。
因为元素是有序的,所以可以根据分数(score)或者次序(position)来获取一个范围内的元素。
- zadd
将一个或多个元素(value)及分数(score)加入到有序集key中。
zadd k1 100 java 200 c++ 300 python 400 php
提示
- 如果某个元素已经是有序集的元素,那么更新这个元素的分数值,并通过重新插入这个元素,来保证该元素在正确的位置上。
- 分数值可以是整数值或双精度浮点数。
- 如果有序集合 key 不存在,则创建一个空的有序集并执行 zadd 操作。
- zrange
返回key集合中的索引start和索引end之间的元素(包含start和end)。
zrange k1 0 -1 # 返回集合中所有元素
zrange k1 0 -1 withscores # 返回集合中所有元素,并携带元素分数
提示
- 其中元素的位置按分数值递增(从小到大)来排序。 其中 0 表示列表的第一个元素,-1表示最后一个元素。
- withscores是可选参数,是否返回分数。
- zrangebyscore
返回key集合中的分数minscore 和分数maxscore 之间的元素(包含minscore 和maxscore )。其中元素的位置按分数值递增(从小到大)来排序。
zrangebyscore k1 200 400 # 返回200-400分之间的元素递增排序
- zincrby
为元素value的score加上increment的值。
zincrby k1 50 java # 给java元素加上50分
- zrem
删除该集合下value的元素
zrem k1 php
- zcount
统计该集合在minscore 到maxscore分数区间中元素的个数。
zcount k1 100 300 # 统计100分到300分中间元素的个数
- zrank
返回value在集合中的排名,从0开始。
zrank k1 c++ # 返回c++排名
使用场景
- 延时队列
- 排行榜
- 限流
Powered by Waline v2.15.7