Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

实例

redis 127.0.0.1:6379> ZADD runoobkey 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD runoobkey 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD runoobkey 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD runoobkey 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD runoobkey 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE runoobkey 0 10 WITHSCORES1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"

Zset在set的基础上加了一个值

1、Zset有序集合常用命令

1.1、zadd

127.0.0.1:6379> zadd mysset 1 one
(integer) 1
127.0.0.1:6379> zadd mysset 2 two 3 three
(integer) 2
127.0.0.1:6379> ZRANGE mysset 0 -1
1) "one"
2) "two"
3) "three"

1.2、ZRANGEBYSCORE

127.0.0.1:6379> zadd salary 2500 xiaohong
(integer) 1
127.0.0.1:6379> zadd salary 5000 zhang3
(integer) 1
127.0.0.1:6379> zadd salary 500 lizhenhi
(integer) 1
127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf  //按照从小到大排序
1) "lizhenhi"
2) "xiaohong"
3) "zhang3"
127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf withscores   //按照从小到大排序,并且附带值
1) "lizhenhi"
2) "500"
3) "xiaohong"
4) "2500"
5) "zhang3"
6) "5000"
127.0.0.1:6379> ZREVRANGE salary 0 -1    //从大到小进行排列
1) "zhang3"
2) "lizhenhi"
127.0.0.1:6379> ZRANGEBYSCORE salary -inf 2500 withscores    //判断小于固定值的降序排列
1) "lizhenhi"
2) "500"
3) "xiaohong"
4) "2500"
127.0.0.1:6379>

1.3、zrem

127.0.0.1:6379> ZRANGE salary 0 -1
1) "lizhenhi"
2) "xiaohong"
3) "zhang3"
127.0.0.1:6379> ZREM salary xiaohong //移除xiaohong
(integer) 1
127.0.0.1:6379> ZRANGE salary 0 -1
1) "lizhenhi"
2) "zhang3"

1.4、ZCARD

127.0.0.1:6379> ZCARD salary  //获取有序集合中的个数
(integer) 2

1.5、ZCOUNT

127.0.0.1:6379> ZCOUNT salary 0 5000  //查询固定区间的长度
(integer) 2

Redis(八):Zset有序集合数据类型详解相关推荐

  1. redis的数据结构||1) 字符串类型2) 哈希类型3) 列表类型4) 集合类型 5) 有序集合类型详解

    2. 下载安装     1. 官网:https://redis.io     2. 中文网:http://www.redis.net.cn/     3. 解压直接可以使用:         * re ...

  2. 【Redis学习】:string数据类型详解

    什么是NoSQL NoSQL,即Not Only SQL,意为不仅仅是SQL,是一项全新的数据库理念,泛指非关系型的数据库. 为什么需要NoSQL 1.对数据库高并发读写的需求 2.对海量数据的高效率 ...

  3. Redis(六):Set集合数据类型详解

    Redis 的 Set 是 String 类型的无序集合.集合成员是唯一的,这就意味着集合中不能出现重复的数据. Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1). 集 ...

  4. Redis(五):List集合数据类型详解

    Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素到列表的头部(左边)或者尾部(右边) 一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个 ...

  5. Redis数据类型详解(五种)

    Redis支持五种数据类型,即string(字符串).hash(哈希).list(列表).set(集合)及zset(sorted set:有序集合),云吞铺子分享Redis数据类型谅解: Redis数 ...

  6. redis 数据类型详解 以及 redis适用场景场合

    redis 数据类型详解 以及 redis适用场景场合 1. MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访 ...

  7. Redis入门 - 数据类型:5种基础数据类型详解

    Redis所有的key(键)都是字符串.我们在谈基础数据结构时,讨论的是存储值的数据类型,主要包括常见的5种数据类型,分别是:String.List.Set.Zset.Hash Redis入门 - 数 ...

  8. Redis之数据类型详解分析

    文章目录 1 Redis 1.1 概述 1.2 查看内部编码 1.3 String字符串 1.3.1 简介 1.3.2 应用常景 1.3.3 String内部编码 1.4 Hash散列 1.4.1 简 ...

  9. Redis Zset有序集合

    Redis Zset有序集合 1.zadd 添加一个或多个值 并且区分SCORE 2.zrange 返回有序集合区间 3.zrangebyscore 通过分数score排名,从低到高 4.Zrevra ...

最新文章

  1. iOS 设置View阴影
  2. mysql的日期差值按天表示_MySql计算日期差值和常用sql
  3. ABAP的OPEN SQL和Hybris Commerce的Flexible Search简介
  4. 【Python】Matplotlib绘制极坐标雷达图
  5. 真正的mybatiesPlus一键生成模板(根据对象增删改查分页的controller完善)详
  6. vscode为各自项目添加launch和setting
  7. dw cc链接mysql_Adobe Dreamweaver CC MySQL连接 报404错误的解决方法_MySQL
  8. 联想拯救者Y9000P安装ubuntu22.04和安装anaconda教程
  9. 使用COOC软件绘制复杂网络
  10. 车牌号识别依托OCR文字识别核心
  11. 如何成为优秀的驱动开发工程师
  12. 记录将pycharm中的caches缓存文件转移到D盘
  13. 中国最小黑客:为不做作业 黑掉学校系统
  14. LoadRunner中think time详解
  15. 基于51单片机的RFID一卡通刷卡扣费充值系统设计原理图程序设计
  16. Android - 接收、监听系统短信广播
  17. 用html语言编写笑脸,怎么使用HTML5中的Canvas绘制笑脸
  18. 深度学习模型压缩与优化加速
  19. 韦伯望远镜拍摄图片震撼来袭!!
  20. Anchor-free的目标检测文章

热门文章

  1. anaconda+python3.7安装keras_win10(64)+python3.7+Anaconda3+tensorflow-cpu+Keras安装(亲测有效)...
  2. oracle 12.2 启用分片,关于Oracle Sharding,你想知道的都在这里
  3. Python while循环 - Python零基础入门教程
  4. 网格变形动画MeshTransform
  5. c语言鼠标环绕特效,C语言写的鼠标有残影,急需解决方案,在线等待!
  6. opencv imread后做resizie_opencv第1课-加载、修改、保存图像
  7. a33 linux内核启动网卡,a33核心板启动问题 - nevermore1981的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. 您已从远程计算机注销,您无法从 Windows Server 2008 R2 中的远程桌面会话注销
  9. github流程图_逆天插件,VSCode里也能画流程图了?Visio可以淘汰了?
  10. mysql的使用优化问题吗_如何对 mysql 进行优化的问题