iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Redis有序集合如何使用
  • 865
分享到

Redis有序集合如何使用

2024-04-02 19:04:59 865人浏览 泡泡鱼
摘要

这篇文章主要介绍“Redis有序集合如何使用”,在日常操作中,相信很多人在Redis有序集合如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redis有序集合如何使用”

这篇文章主要介绍“Redis有序集合如何使用”,在日常操作中,相信很多人在Redis有序集合如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redis有序集合如何使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Redis有序集合如何使用

Redis数据结构:有序集合

有序的集合。每个元素都由一个成员和一个与成员相关联的分值组成,成员以字符串存储,分值以64位双精度浮点数存储。成员不可重复,以分值大小进行排序,相同分值时以成员字典序排序。

数据结构

  • 字符串

  • 散列

  • 列表

  • 集合

  • 有序集合

  • HyperLogLog

  • 位图

  • 地理坐标

有序集合(sorted set)

  • 添加或更新成员
    1.zadd命令  格式:zadd key [NX|XX] [GT|LT] [CH] [INCR] score member [score member …]
    返回添加成功的新成员数量,若执行的是更新成员分值返回0。
    zadd key score member [score member ...]
    Redis有序集合如何使用
    XX选项的作用是只更新不添加,执行后返回0。
    zadd key XX score member [score member ...]
    Redis有序集合如何使用
    NX选项的作用是只添加不更新,执行成功返回添加元素的个数。
    zadd key NX score member [score member ...]
    Redis有序集合如何使用
    CH选项的作用是返回被修改成员的数量而非添加成功的成员数量,被修改包括新添加。
    zadd key CH score member [score member ...]
    Redis有序集合如何使用

  • 移除指定成员
    1.zrem命令  格式:zrem key member [member …]
    返回被移除成员的数量,成员不存在于集合中时自动忽略。
    zrem key member [member ...]
    Redis有序集合如何使用

  • 2.zremrangebyrank命令  格式:zremrangebyrank key start stop
    移除指定排名范围内的成员,返回被移除成员的数量,排名可使用正数排名或负数排名。
    zremrangebyrank key start stop
    Redis有序集合如何使用
    3.zremrangebyscore命令  格式:zremrangebyscore key min max
    移除指定分值范围内的成员,返回被移除成员的数量。min或max前加“(”表示取开区间即不包含边界值。
    zremrangebyscore key min max
    Redis有序集合如何使用
    4.zremrangebylex命令  格式:zremrangebylex key min max
    对于按照字典序排列的有序集合(即分值相同),移除指定字典序范围内的成员。返回被移除成员的数量,min、max的可取值包括:带“[”的值表示包含字典序边界,带“(”表示不包含字典序边界,“+”表示无穷大,“-”表示无穷小。
    zremrangebylex key min max
    Redis有序集合如何使用

  • 弹出元素
    1.zpopmax命令  格式:zpopmax key [count]
    弹出分值最高的count个成员,分值最高有多个元素时弹出字典序最大的成员,若未指定count默认1个,执行完成后返回被弹出元素的成员和分值。
    zpopmax key [count]
    Redis有序集合如何使用
    2.zpopmin命令  格式:zpopmin key [count]
    弹出分值最低的count个成员,分值最低有多个元素时弹出字典序最小的成员,若未指定count默认1个,执行完成后返回被弹出元素的成员和分值。
    zpopmin key [count]
    3.bzpopmax命令  格式:bzpopmax key [key …] timeout
    阻塞式的zpopmax命令,timeout为秒级精度。命令依次检查给定的有序集合,并从第一个非空集合弹出分值最大的元素,否则阻塞当前客户端直到有元素或超出超时时间返回nil。成功弹出元素时将返回一个列表,包含被弹出元素所在有序集合、成员以及分值。
    bzpopmax key [key ...] timeout
    Redis有序集合如何使用
    4.bzpopmin命令  格式:bzpopmin key [key …] timeout
    阻塞式的zpopmin命令,timeout为秒级精度。命令依次检查给定的有序集合,并从第一个非空集合弹出分值最小元素,否则阻塞当前客户端直到有元素或超出超时时间返回nil。成功弹出元素时将返回一个列表,包含被弹出元素所在有序集合、成员以及分值。
    bzpopmin key [key ...] timeout
    Redis有序集合如何使用
    客户端2:
    Redis有序集合如何使用

  • 获取成员分值
    1.zscore命令  格式:zscore key member
    获取给定成员的分值,集合不存在或者成员不存在时返回nil。
    zscore key member
    Redis有序集合如何使用

  • 对成员分值做运算
    1.zincrby命令  格式:zincrby key increment member
    执行完后返回当前成员分值,increment为正时自增,否则为自减;若键不存在或成员不存在则执行创建操作。
    zincrby key increment member
    Redis有序集合如何使用

  • 获取成员数量
    1.zcard命令  格式:zcard key
    返回集合包含的成员数量,集合不存在时返回0。
    zcard key
    Redis有序集合如何使用
    2.zcount命令  格式:zcount key min max
    获取指定分值范围内的成员数量,min或max前加“(”表示取开区间即不包含边界值,值+inf表示无穷大,-inf表示无穷小。
    zcount key min max
    Redis有序集合如何使用
    3.zlexcount命令  格式:zlexcount key min max
    对于按照字典序排列的有序集合(即分值相同),获取指定字典序范围内的成员数量,min、max的可取值包括:带“[”的值表示包含字典序边界,带“(”表示不包含字典序边界,“+”表示无穷大,“-”表示无穷小。
    zlexcount key min max
    Redis有序集合如何使用

  • 获取成员排名
    1.zrank命令  格式:zrank key member
    返回成员的升序排列排名,集合或成员不存在时返回nil。
    zrank key member
    Redis有序集合如何使用
    2.zrevrank命令  格式:zrevrank key member
    返回成员的降序排列排名,集合或成员不存在时返回nil。
    zrevrank key member
    Redis有序集合如何使用

  • 获取成员
    1.zrange命令  格式:zrange key min max [BYSCORE|BYLEX] [REV] [LIMIT offset count] [WITHSCORES]
    获取指定索引范围内的成员,按分值大小升序排列。WITHSCORES选项可在命令执行后返回分值,返回列表奇数位为成员,偶数位为对应分值。集合不存在时返回empty。
    zrange key min max [WITHSCORES]
    Redis有序集合如何使用
    2.zrevrange命令  格式:zrevrange key start stop [WITHSCORES]
    获取指定索引范围内的成员,按分值大小降序排列。WITHSCORES选项可在命令执行后返回分值,返回列表奇数位为成员,偶数位为对应分值。集合不存在时返回empty。
    zrevrange key start stop [WITHSCORES]
    Redis有序集合如何使用
    3.zrangebyscore命令  格式:zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
    获取指定分值范围内的成员,按分值大小升序排列。WITHSCORES选项可在命令执行后返回分值,返回列表奇数位为成员,偶数位为对应分值。集合不存在时返回empty。
    zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
    Redis有序集合如何使用
    [LIMIT offset count]选项的作用是限制返回的成员数量,offset指定需要跳过的成员数量,count执行最多返回成员的数量,count为负时取绝对值。
    Redis有序集合如何使用
    min或max前加“(”表示取开区间即不包含边界值,值+inf表示无穷大,-inf表示无穷小。
    Redis有序集合如何使用
    4.zrevrangebyscore命令  格式:zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
    获取指定分值范围内的成员,按分值大小降序排列,注意max min顺序。
    zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
    Redis有序集合如何使用
    5.zrangebylex命令  格式:zrangebylex key min max [LIMIT offset count]
    当成员分值相同时,获取指定字典序范围内成员,按字典序升序排列,min、max的可取值包括:带“[”的值表示包含字典序边界,带“(”表示不包含字典序边界,“+”表示无穷大,“-”表示无穷小。
    zrangebylex key min max [LIMIT offset count]
    Redis有序集合如何使用
    6.zrevrangebylex命令  格式:zrevrangebylex key max min [LIMIT offset count]
    当成员分值相同时,获取指定字典序范围内成员,按字典序降序排列,max、min的可取值包括:带“[”的值表示包含字典序边界,带“(”表示不包含字典序边界,“+”表示无穷大,“-”表示无穷小。
    zrevrangebylex key max min [LIMIT offset count]

  • 集合运算
    1.并集
     1)zuNIOnstore命令  格式:zunionstore destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
    numkeys为参与运算的集合数量,不对应时返回error,执行完后返回新集合的成员数量。并集得到的为成员集合,若参与运算的集合中有相同成员,则默认新集合的成员分值为原集合成员分数相加。
    zunionstore destination numkeys key [key ...]
    Redis有序集合如何使用
    AGGREGATE选项作用是指定使用的聚合函数,不指定时默认SUM。SUM指分值相加,MIN指取最小分值,MAX指取最大分值。
    zunionstore destination numkeys key [key ...] [AGGREGATE SUM|MIN|MAX]
    Redis有序集合如何使用
    WEIGHTS 选项作用是执行聚合前为每个集合分别设置一个权重,权重分别与集合中成员分值相乘得到新分值,然后执行聚合计算。
    Redis有序集合如何使用
     2)zunion命令  格式:zunion numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
    执行完成后返回新集合成员。
    zunion numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
    2.交集
     1)zinterstore命令  格式:zinterstore destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
    执行完后返回新集合的成员数量。
    zinterstore destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
     2)zinter命令  格式:zinter numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
    执行完后返回新集合成员。
    zinter numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
    注意
    1.集合运算可以使用集合作为输入,默认情况下,集合成员的分值看做1参与运算,可使用WEIGHTS选项设置权重改变集合分值。

  • 常见用法
    1.排行榜
    2.时间线

到此,关于“Redis有序集合如何使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: Redis有序集合如何使用

本文链接: https://www.lsjlt.com/news/73759.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Redis有序集合如何使用
    这篇文章主要介绍“Redis有序集合如何使用”,在日常操作中,相信很多人在Redis有序集合如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redis有序集合如何使用”...
    99+
    2024-04-02
  • redis集合如何使用
    Redis集合是一个无序的、唯一的、字符串集合,它提供了添加、删除、查询、判断元素是否存在等操作。下面是一些常用的Redis集合操作...
    99+
    2023-08-30
    redis
  • redis有序集合和无序集合有什么区别
    Redis中的有序集合(Sorted Set)和无序集合(Set)主要区别在于有序集合中的元素是有顺序的,而无序集合中的元素是无顺序...
    99+
    2024-04-09
    redis
  • 如何使用Redis的有序集合实现排行榜功能
    这篇文章给大家分享的是有关如何使用Redis的有序集合实现排行榜功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一个典型的游戏排行榜包括以下常见功能:能够记录每个玩家的分数;能...
    99+
    2024-04-02
  • Redis集合类型如何使用
    这期内容当中小编将会给大家带来有关Redis集合类型如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、集合内操作1.添加元素sadd key ...
    99+
    2024-04-02
  • Redis中有序集合的内部如何实现
    这篇“Redis中有序集合的内部如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Redis中有序集合的内部如何实现”文...
    99+
    2023-06-29
  • java基于redis有序集合如何实现排行榜
    小编给大家分享一下java基于redis有序集合如何实现排行榜,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言排行榜作为互联网...
    99+
    2024-04-02
  • 小程序tip集合如何使用
    这篇文章主要介绍“小程序tip集合如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“小程序tip集合如何使用”文章能帮助大家解决问题。小程序组件中tip的集合:view(视图容器。)tip: 如...
    99+
    2023-06-26
  • Redis有序集合zset知识点有哪些
    今天小编给大家分享一下Redis有序集合zset知识点有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一...
    99+
    2024-04-02
  • redis集合的使用场景有哪些
    唯一性:使用集合来存储唯一的元素,确保数据不重复。 标签系统:使用集合来存储标签信息,方便对数据进行分类和检索。 用户关...
    99+
    2024-04-09
    redis
  • Redis有序集合是怎么实现排序的
    Redis有序集合是通过使用有序集合中的分数(score)来实现排序的。在有序集合中,每个成员都会关联一个分数,可以通过这个分数来对...
    99+
    2024-05-07
    Redis
  • 使用Redis有序集合实现IP归属地查询详解
    工作中经常遇到一类需求,根据 IP 地址段来查找 IP 对应的归属地信息。如果把查询过程放到关系型数据库中,会带来很大的 IO 消耗,速度也不能满足,显然是不合适的。 那有哪些更好的办法呢?为此做了一些尝试...
    99+
    2024-04-02
  • 怎么取出redis有序集合所有数据
    可以使用ZRANGE命令来获取有序集合中所有的元素数据。语法如下: ZRANGE key start stop [WITHSCORE...
    99+
    2024-04-09
    redis
  • 07 redis数据类型:有序集合 sort set
    ### sort set(有序集合)简介它比set多了一个权重参数score,使得集合中的元素能够按score进行有序排列,比如一个存储全班同学成绩的sorted set,其集合value可以是同学的学号,...
    99+
    2024-04-02
  • redis如何获取map集合
    在Redis中,可以使用命令`HGETALL`来获取一个map集合的所有key-value对。示例:```> HSET mymap ...
    99+
    2023-09-11
    redis
  • Redis整数集合的使用方法有哪些
    这篇文章主要讲解了“Redis整数集合的使用方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis整数集合的使用方法有哪些”吧!一、集合概述     ...
    99+
    2023-06-29
  • 如何使用Collections.reverse对list集合进行降序排序
    目录使用Collections.reverse对list集合进行降序排序Collections.reverse原理使用Collections.reverse对list集合进行降序排序...
    99+
    2024-04-02
  • Redis数据操作--无序集合
    | 有序集合和集合一样,都可以包含任意数量的,各不相同的元素,不同于集合 的是,有序集合的每个元素都关联着一个浮点数分值,并且有序集合会按照 分值,以从小到大的顺序来排列有序集合中的各个元素。 &...
    99+
    2024-04-02
  • SpringBoot集成如何使用Redis
    小编给大家分享一下SpringBoot集成如何使用Redis,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!SpringBoot集成使用redisJedis 是 Redis 官方推出的一款面向 Java 的客户端,提供了很多...
    99+
    2023-06-29
  • 如何使用TreeSet集合
    这篇文章将为大家详细讲解有关如何使用TreeSet集合,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。需求:键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作