专业编程基础技术教程

网站首页 > 基础教程 正文

redis五大数据类型之sortedset

ccvgpt 2025-01-04 17:37:41 基础教程 2 ℃

Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出 现在一个Set中。它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个权重与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。然 而需要额外指出的是,尽管Sorted-Sets中的成员必须是唯一的,但是权重却是可以重复的。

redis五大数据类型之sortedset

在Sorted-Set中添加、删除或更新一个成员都是非常快速的操作,其时间复杂度为 集合中成员数量的对数。由于Sorted-Sets中的成员在集合中的位置是有序的,因此, 即便是访问位于集合中部的成员也仍然是非常高效的。

常见的操作

zadd key score member score2 member2 … :将所有成员以及该成员的权重存放到sorted-set中,并且按照权重参数从小到大进行排序进行存放

zrange key start end [withscores]:获取集合中脚标为start-end的成员,[withscores]参数表明返回的成员包含其分数

zcard key:获取集合中的成员数量

zscore key member:返回指定成员的分数

zrem key member[member…]:移除集合中指定的成员,可以指定多个成员

zrevrange key start end [withscores]:获取集合中脚标为start-end的成员,不过是从分数从大到小开始返回,[withscores]参数表明返回的成员包含其分数。

zremrangebyrank key start stop:按照排名范围删除元素,从小到大开始删(按权重分数)

zremrangebyrank mysort 0 2表示按照分数从小到大删除下标0到2(包含2)

zremrangebyscore key min max:按照分数范围

本例中zremrangebyscore mysort 25 87表示删除mysort中权重在25到87之间的,包含25和87

zrangebybyscore mysort min max[withscores][limit offset count]:返回分数在[min ,max]的成员并按照分数从低到高排序。[withscores]:现实分数。[limit offset count]:offset表示从角标为offset的元素开始并返回count格成员(和web分页查询原理一样)

0 3表示每页显示3个,从下标0开始

3 3表示每页显示3个,从下标3开始

zincrby key increment member:设置指定成员的增加的分数,返回值为更改之后的分数

zcount key min max:返回分数在[min,max]之间的成员

zrank key member:返回成员在集合中的位置,从小到大

zrevrank key member:返回成员在集合中的位置,从大到小

因为存储的时候,我们可以指定权重,所以我们常用其进行排名的存储

zscore key member:返回指定成员的分数

zcard key:获取集合中成员的数量

Tags:

最近发表
标签列表