redis系列(07):Sorted-Sets类型操作
  oQNKXeHVeoXq 2023年12月12日 23 0

 


Sorted-Sets也称为Zset,每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序(默认)。

尽管Sorted­Sets中的成员必须是唯一的,但是分数(score)却是可以重复的。

由于Sorted-Sets中的成员在集合中的位置是有序的,因此,即便是访问位于集合中部的成员也仍然是非常高效的。

应用场景:排序场景,比如排行榜;构建索引数据

 

zadd、zrange、zcard、zrank、zcount、zrem、zscore、zincrby

zadd

redis系列(07):Sorted-Sets类型操作_字符串

添加一个分数为10的成员

redis系列(07):Sorted-Sets类型操作_删除成员_02

添加两个分数分别是20和30的两个成员

redis系列(07):Sorted-Sets类型操作_应用场景_03

zrange

通过索引获取元素,0表示第一个成员,­1表示最后一个成员。WITHSCORES选项表示返回的结果中包含每个成员及其分数,否则只返回成员

redis系列(07):Sorted-Sets类型操作_字符串_04

zcard

获取test键中成员的数量

redis系列(07):Sorted-Sets类型操作_应用场景_05

zrank

获取成员在集合中的索引,索引从0开始

redis系列(07):Sorted-Sets类型操作_字符串_06

成员ddd并不存在,因此返回nil

redis系列(07):Sorted-Sets类型操作_删除成员_07

zcount

获取符合指定条件的成员数量,分数满足表达式10 <= score <= 20的成员的数量

redis系列(07):Sorted-Sets类型操作_应用场景_08

zrem

删除成员aaa和bbb,返回实际删除成员的数量

redis系列(07):Sorted-Sets类型操作_应用场景_09

zscore

获取成员ccc的分数。返回值是字符串形式

redis系列(07):Sorted-Sets类型操作_删除成员_10

由于成员aaa已经被删除,所以该命令返回nil

redis系列(07):Sorted-Sets类型操作_应用场景_11

zincrby

将成员ccc的分数增加10,并返回该成员更新后的分数

redis系列(07):Sorted-Sets类型操作_删除成员_12

将成员ccc的分数增加­-5,并返回该成员更新后的分数

redis系列(07):Sorted-Sets类型操作_应用场景_13

 

zrangebyscore、zremrangebyscore、zremrangebyrank

zrangebyscore

通过分数获取元素,获取分数满足表达式10 <= score <= 20的成员

redis系列(07):Sorted-Sets类型操作_应用场景_14

zremrangebyscore

根据分数删除成员,删除分数满足表达式10 <= score <= 20的成员,并返回实际删除的数量

redis系列(07):Sorted-Sets类型操作_删除成员_15

zremrangebyrank

根据索引删除成员,删除索引满足表达式0 <= rank <= 1的成员 

redis系列(07):Sorted-Sets类型操作_字符串_16

 

zrevrange、zrevrangebyscore、zrevrank

zrevrange

按索引从高到低的方式获取成员(获取top10:zrevrange test 0 9)

redis系列(07):Sorted-Sets类型操作_字符串_17

由于是从高到低的排序,所以位置等于0的是ddd,1是ccc,并以此类推

redis系列(07):Sorted-Sets类型操作_删除成员_18

zrevrangebyscore

按索引从高到低的方式根据分数获取成员,分数满足表达式30 >= score >= 10的成员

redis系列(07):Sorted-Sets类型操作_应用场景_19

limit选项的含义等同于zrangebyscore中的该选项,只是在计算位置时按照相反的顺序计算和获取

redis系列(07):Sorted-Sets类型操作_删除成员_20

zrevrank

获取成员aaa在集合中的索引,由于是从高到低的排序,所以aaa的位置是3

redis系列(07):Sorted-Sets类型操作_字符串_21

由于是从高到低的排序,所以ddd的位置是0

redis系列(07):Sorted-Sets类型操作_删除成员_22

__EOF__


本文作者:持之以恒(韧)
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月12日 0

暂无评论

推荐阅读
oQNKXeHVeoXq