遇一山,过一山,处处有风景;只要勇敢向前,一路尽是繁花盛开。 | (点击查看→)【测试干货】python/java自动化、持续集成、性能、测开、简历、笔试面试等

redis系列(07):Sorted-Sets类型操作

 

本系列汇总,请查看这里https://www.cnblogs.com/uncleyong/p/10950727.html

 

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

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

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

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

 

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

zadd

添加一个分数为10的成员

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

zrange

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

zcard

获取test键中成员的数量

zrank

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

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

zcount

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

zrem

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

zscore

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

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

zincrby

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

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

 

zrangebyscore、zremrangebyscore、zremrangebyrank

zrangebyscore

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

zremrangebyscore

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

zremrangebyrank

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

 

zrevrange、zrevrangebyscore、zrevrank

zrevrange

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

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

zrevrangebyscore

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

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

zrevrank

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

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

posted @ 2023-12-04 22:57  全栈测试笔记  阅读(53)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end