我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Redis有序集合类型的常用命令小结

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Redis有序集合类型的常用命令小结

一、有序集合类型

有序集合类型,大家从名字上应该就可以知道,实际上就是在集合类型上加了个有序而已。Redis中的有序集合类型,实际上是在集合类型上,为每个元素都关联一个分数,有序实际上说的是分数有序,我们根据分数的范围获取集合及其他操作。集合的元素依然是不能够相同的,但是分数可以相同。

下面列举有序集合和类型和列表类型的相似处:

①两者都是有序的(废话!)

②两者都可以获得某一范围的元素

下面列举区别:

①列表是链表实现的,靠近两边的数据读取极快,而元素过多后获取中间元素的速度则会很慢;有序集合类型使用的散列表和跳跃表(Skip list)实现的,所以读取哪部分的数据都差不多(时间复杂度是O(logN))。

②列表中不能简单的调整元素的位置,但是有序集合可以(通过改变分数)。

③有序集合比列表费内存(要存储分数、散列、跳跃表)。

二、Redis有序集合的常用命令

Redis有序集合的常用命令有:zadd,zrange,zremrangebyrank,zremrangebyscore,zcard等,这些都是使用频率比较高的,还有一些参数的说明等。下面来看看一起看看吧。

1、ZADD命令

将一个或多个 member 元素及其 score 值加入到有序集 key 当中。

如果某个 member 已经是有序集的成员,那么更新这个 member 的 score 值,并通过重新插入这个 member 元素,来保证该 member 在正确的位置上。

score 值可以是整数值或双精度浮点数。

先用zadd命令批量添加一些元素到有序集合中,后面的操作都是基于这个集合进行。


127.0.0.1:6379> zadd myzadd 1 a 2 b 3 c 4 d 5 e 6 f 7 d 8 e 9 f 10 tanteng.me
(integer) 7

如图所示:

查看图片

有序集合最特别的地方在于score,有了分值可以做很多事情,这个score不仅可以理解为分值,有时也会存时间戳,或者ip的整形形式,可以灵活运用。

2、ZRANGE命令

语法:ZRANGE key start stop [WITHSCORES]

zrange命令用于返回有序集合中给定区间的元素。start从0开始,stop是结束下标,如果是负数表示从倒数开始,-1倒数第一个,-2倒数第二个……

看下面的操作一目了然。


127.0.0.1:6379> zrange myzadd 0 1
1) "a"
2) "b"
127.0.0.1:6379> zrange myzadd 0 5
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
6) "f"
127.0.0.1:6379> zrange myzadd 1 5
1) "b"
2) "c"
3) "d"
4) "e"
5) "f"
127.0.0.1:6379> zrange myzadd 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
6) "f"
7) "tanteng.me"

加上WITHSCORES参数显示分值:


127.0.0.1:6379> zrange myzadd 0 -1 WITHSCORES
 1) "a"
 2) "1"
 3) "b"
 4) "2"
 5) "c"
 6) "3"
 7) "d"
 8) "7"
 9) "e"
10) "8"
11) "f"
12) "9"
13) "tanteng.me"
14) "10"

3、ZREMRANGEBYRANK命令

语法:ZREMRANGEBYRANK key start stop

移除有序集中指定排名(rank)区间内的所有成员。start从0开始,stop可以为负数,表示倒过来第几位。


127.0.0.1:6379> zremrangebyrank myzadd 0 2
(integer) 3

执行这个命令就删除了前三个元素a,b,c.

4、ZREMRANGEBYSCORE命令

语法:ZREMRANGEBYSCORE key min max

移除有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。


127.0.0.1:6379> zremrangebyscore myzadd 7 8
(integer) 2

这样一来就把分值是7和8的元素d,e移除了.

ZREMRANGEBYRANK和ZREMRANGEBYSCORE从字面上很好理解,都是移除元素,一个根据下标,一个根据分值。

5、ZCARD命令

语法:ZCARD key

返回有序集合的基数。


127.0.0.1:6379> zcard myzadd
(integer) 2

经过前面的删除元素操作,现在只剩2个元素了。

6、ZCOUNT命令

语法:ZCOUNT key min max

ZCOUNT命令和ZCARD命令的不同是,ZCOUNT支持根据范围返回元素个数。

由于集合元素都差不多删没了,重新添加一组元素:


127.0.0.1:6379> zadd new 100 www.baidu.com 900 www.tanteng.me 12 www.yahoo.com 90 www.xunlei.com 88 www.juanpi.com
(integer) 5

如图所示:

查看图片

现在返回分值在80和100之间的成员数量。


127.0.0.1:6379> zcount new 80 100
(integer) 3

返回3个。

在Redis里面,还有个参数inf,-inf表示第一个成员,+inf表示最后一个。


127.0.0.1:6379> zcount new 80 +inf
(integer) 4

这里就返回4个数量,+inf这里表示没有限制最高分值的意思。

总结

以上就是关于Redis有序集合类型常用命令的全部内容,文章总结的还是很详细的,希望能对大家的学习或者工作带来一些便捷,如果有大家有疑问也可以留言交流,谢谢大家对编程网的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Redis有序集合类型的常用命令小结

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Redis有序集合类型的常用命令小结

一、有序集合类型 有序集合类型,大家从名字上应该就可以知道,实际上就是在集合类型上加了个有序而已。Redis中的有序集合类型,实际上是在集合类型上,为每个元素都关联一个分数,有序实际上说的是分数有序,我们根据分数的范围获取集合及其他操作。集
2022-06-04

Redis集合类型的常用命令小结

集合类型介绍 集合类型也是体现redis一个比较高价值的一个类型了。因为Redis的集合类型,所以我们可以很容易的在Redis中执行差集运算、交集运算、并集运算。 首先我们先介绍一下集合类型和列表类型的区别,其实学过面向对象的语言的同学应该
2022-06-04

Redis列表类型的常用命令小结

列表类型介绍 列表类型也是一个我们很长要用到的一个类型。比如我们发博客,要用到博客列表。如果没有列表我们就只能遍历键来获取所有文章或一部分文章了,这个语法是keys,但是这个命令需要遍历数据库中的所有键,处于性能方面的考虑,在生产环境是不推
2022-06-04

Redis字符串类型的常用命令小结

Redis字符串类型 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据
2022-06-04

Redis中散列类型的常用命令小结

Redis散列类型 Redis是采用字典结构以键值对的形式存储数据的,而散列类型(hash)的键值也是一种字典结构,其存储了字段和字段值的映射,但字段值只能是字符串,不支持其他数据类型,也就是说,散列类型不能嵌套其他的数据类型。一个散列类型
2022-06-04

Redis中Zset类型常用命令的实现

目录一. Zset有序集合简介.二. 添加元素相关命令.2.1 向有序集合中添加元素(zadd)三. 查询元素相关操作.3.1 查询有序集合中的元素个数( zcajsrd zcount)3.2 查询指定区间内的元素(zrange zrevr
Redis中Zset类型常用命令的实现
2024-10-17

Redis的五大数据类型及常用命令

一、与数据库相关的命令Redis启动后默认16个数据库,类似数组下表从零开始,初始默认使用零号库切换数据库命令 select 数据库下标查看当前数据库的key的数量 Dbsize清空当前库 flushdb清空所有库 flushall二、与键相关的常用命令查看所
Redis的五大数据类型及常用命令
2015-10-09

Redis基本数据类型Zset有序集合常用操作实例分析

这篇文章主要介绍“Redis基本数据类型Zset有序集合常用操作实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Redis基本数据类型Zset有序集合常用操作实例分析”文章能帮助大家解决问题。
2023-06-30

Redis有序集合类型的操作_动力节点Java学院整理

今天我们说一下Redis中最后一个数据类型 “有序集合类型”,回首之前学过的几个数据结构,不知道你会不会由衷感叹,开源的世界真好,写这些代码的好心人真的要一生平安哈,不管我们想没想的到的东西,在这个世界上都已经存在着,曾几何时,我们想把所有
2022-06-04

阿里云服务器常用命令有哪些类型的

阿里云服务器常用的命令可以按照以下类型进行分类:常规命令:例如:AF:AF是Alicloud上的Foundation。AF用于启动和停止阿里云虚拟主机和云服务器,AF的操作包括AF文件、AFSAMPLE和AFRADIUS等。AF的常见命令包括AF-SAMPLE、AF-SAMPLE-FLOWERS、AF-SAMPLE-FLOWERS-TRIPLE等。CF:CFFoundation是阿里云服务器上的文件共享服务。CF常见的命令包括CF-S...
2023-10-27

阿里云服务器常用命令有哪些类型的功能

CPU监控:阿里云服务器提供了CPU使用情况的监控功能,通过该功能可以查看当前服务器的CPU使用情况,以便及时调整服务器的运行状态,提高服务器的性能和稳定性。磁盘监控:阿里云服务器提供了磁盘使用情况的监控功能,通过该功能可以查看当前服务器的磁盘使用情况,以便及时发现和解决磁盘故障和性能问题,避免服务器数据丢失。内存监控:阿里云服务器提供了内存使用情况的监控功能,通过该功能可以查看当前服务器的内存使...
2023-10-27

编程热搜

目录