Redis 中有序集合的操作

来源:互联网 发布:什么叫对冲基金 知乎 编辑:程序博客网 时间:2024/06/15 05:09

Sort Set类型和Set类型类似,Sort Set多了一个double类型的整数score进行排序,

官网的说明是Sort Set是同过SkipList 跳跃表 和 HashTable组合实现的。SkipList
负责排序,HashTable负责存储集合中元素的值。可以使用Sort Set 实现一个具有优先级的队列。而List实现的只有单双向队列。

常用操作命令:

1.添加元素

zadd myzset 1 onezadd myzset 2 two

和set类似。

2.查询集合中区间中的值 (withscores)

zrange myzset 0 -1 withscores

0 到 -1 表示取得所有的值 和List类似。加withscores表示显示元素的排序值。

3.移除有序集合中的值

zrem myzset one

4.增加元素的score值,重新排序

zincrby myzset 1 one

增加one元素的排序值加1.并对集合中的元素重新排序。
5.返回指定元素在集合中的排名下标,按score从小到大排序。

zrank myzset one

返回的是one元素在myzset中的score排序 这里是0

6.同上,但是按从大到小排序。

zrevrank myzset one

7.反序排序显示

zrevrange myzset 0 -1 withscores

和zrange类似只是按score相反的排序。

8.返回集合中score在区间里面的元素

zrangebyscore myzset 1 2

返回集合中元素score在 1 -2 中的元素 ,这里返回 one two

9.返回集合中score在区间里面的元素数量.

zcount myzset 1 2

这里返回的是2

10.返回集合中元素的数量 和 scard类似

zcard myzset 

11.返回元素对应的score

zscore myzset one

这里返回的是 1.
12.删除集合中排名在指定区间内的元素

zremrangebyrank myzset 0 1

删除从小到大排序为0 1两个元素。

13.删除集合中score在指定区间内的元素

zremrangebyscore myzset 1 2

这里删除了 one two两个元素 返回 2

0 0
原创粉丝点击