加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 海宁网 (https://www.hainingwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

Redis避不开的五种数据结构

发布时间:2018-10-30 17:53:33 所属栏目:编程 来源:编辑部的故事
导读:Redis 中有 5 种数据结构,分别是字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set),因为使用 Redis 场景的开发中肯定是无法避开这些基础结构的,所以熟练掌握它们也就成了一项必不可少的能力。本文章精要地介绍了 Redis 的这几

zadd key [NX|XX] [CH] [INCR] score member [score member ...]

Redis避不开的五种数据结构

zadd 命令也是有返回值的,返回值就是当前 zadd 命令成功添加元素的个数。zadd 命令有很多选填参数:

  • nx: 元素必须不存在时,才可以设置成功。
  • xx: 元素必须存在时,才可以设置成功。
  • ch: 返回此命令执行完成后,有序集合元素和分数发生变化的个数
  • incr: 对 score 做增加。

备注:由于有序集合相比集合提供了排序字段,正是因为如此也付出了相应的代价,sadd 的时间复杂度为 O(1),而 zadd 的时间复杂度为O(log(n))。

计算成员个数

zcard key

Redis避不开的五种数据结构

计算某个成员的分数

zscore key member

Redis避不开的五种数据结构

在使用 zscore 命令时,如果 key 不存在,或者元素不存在时,该命令返回的都是(nil)。

计算成员的排名

zrank key member

zrevrank key member

Redis避不开的五种数据结构

zrank 命令是从分数低到高排名,而 zrevrank 命令则恰恰相反,从高到低排名。有一点要特别注意, zrank 和 zrevrank 命令与 zscore 是命令不同的,前者通过分数计算出最后的排名,而后者则是直接返回当前元素的分数。

删除元素

zrem key member [member ...]

Redis避不开的五种数据结构

返回的结果为成功删除元素的个数,因为 zrem 命令是支持批量删除的。

增加元素分数

zincrby key increment member

Redis避不开的五种数据结构

虽然 zincrby 命令是增加元素分数的,但我们也可以指定负数,这样当前元素的分数,则会相减。

返回指定排名范围的元素

zrange key start stop [WITHSCORES]

zrevrange key start stop [WITHSCORES]

Redis避不开的五种数据结构

zrange 命令是通过分数从低到高返回数据,而 zrevrange 命令是通过分数从高到低返回数据。如果执行命令时添加了 WITHSCORES 可选参数,则返回数据时会返回当前元素的分数。

返回指定分数范围的元素

zrangebyscore key min max [WITHSCORES] [LIMIT offset count]

zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]

Redis避不开的五种数据结构

min 和 max 参数还支持开区间(小括号)和闭区间(中括号),同时我们还可以用 -inf 和 +inf 参数代表无限小和无限大。

Redis避不开的五种数据结构

返回指定分数范围元素个数

zcount key min max

Redis避不开的五种数据结构

删除指定排名内的升序元素

zremrangebyrank key start stop

Redis避不开的五种数据结构

删除指定分数范围元素

zremrangebyscore key min max

Redis避不开的五种数据结构

2.集合间操作

交集

zinterstore destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]

(编辑:财气旺网 - 海宁网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!