zoukankan      html  css  js  c++  java
  • redis有序集合数据类型---sortedset

    一、概述

    1. redis有序集合和集合一样,也是string类型元素的集合,且不允许重复的成员。
    2. 不同的是每个元素都会关联一个double类型的分数。
    3. redis正式通过分数来为集合中的重圆进行从小到大的排序。
    4. 有序集合的成员是唯一的,但分数(score)却可以重复。
    5. 集合中最大的成员数为2^32-1。

    二、sortedset键的设置

    • 命令名称:zadd
    • 语法:zadd key [NX|XX] [CH] [INCR] score member [score member ...]
    • 功能:
      • 将一个或多个member元素及其score值加入到有序集key当中。
      • 如果某个member已经是有序集的成员,那么更新这个member的score值,并通过重新插入这个member元素,来保证该member在正确的位置上。
      • score值可以是整数值或双精度浮点数。
      • 如果key不存在,则创建一个空的有序集并执行zadd操作。
      • 当key存在但不是有序集类型时,返回一个错误。
    • 返回值:
      • 被成功添加的新成员的数量,不包括那些被更新的、已经存在的成员
    • 命令名称:zincrby
    • 语法:zincrby key increment member
    • 功能:
      • 为有序集key的成员member的score值加上增量increment(可负)。
      • 当key不存在,或member不是key的成员时,zincrby等同于zadd
    • 返回值:
      • 当key不是有序集类型时,返回一个错误。member成员的新score值,以字符串形式表示。

    三、sortedset键的查询

    • 命令名称:zcard
    • 语法:zcard key
    • 功能:
      • 返回有序集合key的基数(有序集合中元素的数量)
    • 返回值:
      • 当key存在且是有序集类型时,返回有序集的基数。
      • 当key不存在时,返回0
    • 命令名称:zcount
    • 语法:zcount key min max
    • 功能:
      • 返回有序集合key中,score值在min和max之间(默认包括score值等于min或max)的成员的数量。
    • 返回值:
      • score值在min和max之间的成员的数量。
    • 命令名称:zrange
    • 语法:zrange key start stop [withscores]
    • 功能:
      • 返回有序集key中,指定区间内的成员。
      • 其中成员的位置按score值递增(从小到大)来排序。
    • 返回值:
      • 指定区间内,带有score值(可选)的有序集成员的额列表。
    • 命令名称:zrangebyscore
    • 语法:zrangebyscore key min max [withscores] [limit offset count]
    • 功能:
      • 返回有序集key中,所有score值介于min和max之间(包括等于min或max)的成员。有序集成员按score值递增(从小到大)次序排列。
    • 返回值:
      • 指定区间内,带有score值(可选)的有序集成员的列表。
    • 命令名称:zrank
    • 语法:zrank key member
    • 功能:
      • 返回有序集key中成员member的排名。其中有序集成员按score值递增(从小到大)顺序排列。
      • 排名以0为底,也就是说,score值最小的成员排名为0.
    • 返回值:
      • 如果member是有序集key的成员,返回member的排名。
      • 如果member不是有序集key的成员,返回nil。
    • 命令名称:zrevrange
    • 语法:zrevrange key start stop [withscores]
    • 功能:
      • 返回有序集key中,指定区间内的成员。
      • 其中成员的位置按score值递减(从大到小)来排列
    • 返回值:
      • 指定区间内,带有score值(可选)的有序集成员的列表。
    • 命令名称:zrevrangebyscore
    • 语法:zrevrangebyscore key max min [withscores] [limit offset count]
    • 功能:
      • 返回有序集key中,score值介于max和min之间(默认包括等于max或min)的所有成员。有序集成员按score值递减(从大到小)的次序排列。
    • 返回值:
      • 指定区间内,带有score值(可选)的有序集成员的列表。
    • 命令名称:zrevrank
    • 语法:zrevrank key member
    • 功能:
      • 返回有序集key中成员member的排名。其中有序集成员按score值递减顺序排列。
      • 排名以0为底,也就是说,score值最小的成员排名为0.
    • 返回值:
      • 如果member是有序集key的成员,返回member的排名。
      • 如果member不是有序集key的成员,返回nil。
    • 命令名称:zscore
    • 语法:zscore key member
    • 功能:
      • 返回有序集key中成员member的score值。
      • 如果member元素不是有序集key的成员,或key不存在,返回nil。
    • 返回值:
      • member成员的score值,以字符串形式表示。
    • 命令名称:zscan
    • 语法:zscan key cursor [match pattern] [count count]
    • 功能:
      • 用于迭代有序集合键中的元素。
    • 返回值:
      • 有序集合成员。
    • 命令名称:zrangebylex
    • 语法:zrangebylex key min max [limit offset count]
    • 功能:
      • 当有序集合的所有成员都具有相同的分值时,有序集合的元素会根据成员的字典序来进行排序,而这个命令则可以返回给定的有序集合键key中,值介于min和max之间的成员。
    • 返回值:
      • 数组回复:一个列表,列表里面包含了有序集合在指定范围内的成员

    • 命令名称:zlexcount
    • 语法:zlexcount key min max
    • 功能:
      • 对于一个所有成员的分值都相同的有序集合键key来说,这个命令会返回该集合中,成员介于min和max范围内的元素数量。
    • 返回值:
      • 整数回复:指定范围内的元素数量。

    四、redis有序集合类型并集和交集处理

    • 命令名称:zunionstore
    • 语法:zunionstore destination numkeys key [key……] [weights weight [weight……]] [aggregate sum|min|max]
    • 功能:
      • 计算给定的一个或多个有序集的并集,其中给定key的数量必须以numkeys参数指定,并将该并集(结果集)存到destinaton。
      • 默认情况下,结果集中某个成员的score值是所有给定集下该成员score值之和。
    • 返回值:
      • 保存到destination的结果集的基数。
    • 命令名称:zinterstore
    • 语法:zinterstore destination numkeys key [key……] [weights weight [weight……]] [aggregate sum|min|max]
    • 功能:
      • 计算给定的一个或多个有序集的交集,其中给定key的数量必须以numkeys参数指定,并将该并集(结果集)存到destinaton。
      • 默认情况下,结果集中某个成员的score值是所有给定集下该成员score值之和。
    • 返回值:
      • 保存到destination的结果集的基数。

    五、删除

    • 命令名称:zrem
    • 语法:zrem key member [member……]
    • 功能:
      • 移除有序集key中的一个或多个成员,不存在的成员将被忽略。
      • 当key存在但不是有序集类型时,返回一个错误。
    • 返回值:
      • 被成功移除的成员的数量,不包括别忽略的成员。
    • 命令名称:zremrangebyrank
    • 语法:zremrangebyrank key start stop
    • 功能:
      • 移除有序集key中,指定排名(rank)区间内的所有成员。
      • 区间分别以下标参数start和stop指出,包含start和stop在内。
    • 返回值:
      • 被移除成员的数量。
    • 命令名称:zremrangebyscore
    • 语法:zremrangebyscore key min max
    • 功能:
      • 移除有序集key中,所有score值介于min和max之间(包括等于min或max)的成员。
    • 返回值:
      • 被移除成员的数量。
    • 命令名称:zremrangebylex
    • 语法:zremrangebylex key min max
    • 功能:
      • 对于一个所有成员的分值都相同的有序集合键key来说,这个命令会移除该集合中,成员介于min和max范围内的所有元素。
    • 返回值:
      • 被移除成员的数量。
  • 相关阅读:
    通过SQLServer的数据库邮件来发送邮件
    sql生成数据库的序列号
    存储过程备份数据库
    LED客显的类
    坦克大战java版
    连连看java版
    贪吃蛇java版
    分享插件 javascript
    js实现上传图片及时预览
    json返回date类型转为字符串
  • 原文地址:https://www.cnblogs.com/lxhyty/p/11429904.html
Copyright © 2011-2022 走看看