Redis - Zset 有序集合

目录

前言

列表、集合、有序集合三者的异同点

命令

ZADD 添加或者更新指定的元素以及关联的分数

ZRANGE 返回指定区间里的元素(分数按照升序)

ZREVRANGE 返回指定区间里的元素(分数按照降序)

ZRANGEBYSCORE 返回在指定分数范围内的元素

ZPOPMAX 删除并返回分数最高的 count 个元素

BZPOPMAX 是 ZPOPMAX 的阻塞版本

ZPOPMIN 删除并返回分数最低的 count 个元素

BZPOPMIN 是 ZPOPMIN 的阻塞版本

ZRANK 返回指定元素的排名(升序)

ZREVRANK 返回指定元素的排名(降序)

ZSCORE 返回指定元素的分数

ZREM 删除指定的元素

ZREMRANGEBYRANK 按照排序删除指定范围的元素(升序)

ZREMRANGEBYSCORE 按照分数删除指定范围的元素(升序)

ZINCRBY 为指定的元素的关联分数添加指定的分数值

ZINTERSTORE 求出有序集合中元素的交集并保存进目标有序集合中

ZUNIONSTORE 求出有序集合中元素的并集并保存进目标有序集合中

内部编码

使用场景


前言

        它保留了集合不能有重复成员的特点,但与集合不同的是,有序集合中的每个元素都有⼀个唯⼀的浮点类型的分数(score)与之关联,有序集合中的元素是可以维护有序性的,但这个有序不是⽤下标作为排序依据⽽是⽤这个 分数。

        

        有序集合中的元素是不能重复的,但分数允许重复。类⽐于⼀次考试之后,每个人的学号不同,但分数可以相同

列表、集合、有序集合三者的异同点

命令

ZADD 添加或者更新指定的元素以及关联的分数

        添加或者更新指定的元素以及关联的分数到 zset 中,分数应该符合 double 类型,+inf/-inf 作为正负极限也是合法的

ZADD 的相关选项:

  • XX:仅仅⽤于更新已经存在的元素,不会添加新元素。(当元素不存在则没有效果)
  • NX:仅⽤于添加新元素,不会更新已经存在的元素。(当元素存在则没有效果)
  • CH:默认情况下,ZADD 返回的是本次添加的元素个数,但指定这个选项之后,就会包含本次更新的元素的个数。
  • INCR:此时命令类似 ZINCRBY 的效果,将元素的分数加上指定的分数。此时只能指定⼀个元素和分数。

        在未添加选项的情况下,ZADD 返回的是本次添加成功的元素个数,当元素不存在就创建,存在就更新分数

语法

ZADD key [NX | XX] [GT | LT] [CH] [INCR] score member [score member...]

时间复杂度:O(log(N)) 

返回值:本次添加成功的元素个数

示例:

无选项:

XX:

NX:

CH:

INCR:

 

ZRANGE 返回指定区间里的元素(分数按照升序)

        带上 WITHSCORES 可以把分数也返回。分数按照升序,代表最小的数对应的下标为 0 

语法

ZRANGE key start stop [WITHSCORES]

此处是 [start, stop] 为下标构成的区间. 从 0 开始, ⽀持负数.

时间复杂度:O(log(N)+M)

返回值:区间内的元素列表

示例:

ZREVRANGE 返回指定区间里的元素(分数按照降序)

        带上 WITHSCORES 可以把分数也返回。分数按照降序,代表最大的数对应的下标为 0 

语法

ZREVRANGE key start stop [WITHSCORES]

此处是 [start, stop] 为下标构成的区间. 从 0 开始, ⽀持负数.

时间复杂度:O(log(N)+M)

返回值:区间内的元素列表

示例:

ZRANGEBYSCORE 返回在指定分数范围内的元素

语法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小林想被监督学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值