redis 有序集合(zset)函数

zAdd 命令/方法/函数
Adds the specified member with a given score to the sorted set stored at key. 增加一个或多个元素,如果该元素已经存在,更新它的socre值 虽然有序集合有序,但它也是集合,不能重复元素,添加重复元素只会 更新原有元素的score值 Parameters key score : double value: string Return value Long if the element is added. otherwise. Example $redis->zAdd('key', , 'val1'); $redis->zAdd('key', , 'val0'); $redis->zAdd('key', , 'val5'); $redis->zRange('key', , -); // array(val0, val1, val5)
zRange 命令/方法/函数
Returns a range of elements from the ordered set stored at the specified key, with values in the range [start, end]. start and stop are interpreted as zero-based indices: the first element, the second ... - the last element, - the penultimate ... 取得特定范围内的排序元素,0代表第一个元素,1代表第二个以此类推。-1代表最后一个,-2代表倒数第二个... Parameters key start: long end: long withscores: bool = false Return value Array containing the values in specified range. Example $redis->zAdd('key1', , 'val0'); $redis->zAdd('key1', , 'val2'); $redis->zAdd('key1', , 'val10'); $redis->zRange('key1', , -); /* array('val0', 'val2', 'val10') */ // with scores $redis->zRange('key1', , -, true); /* array('val0' => 0, 'val2' => 2, 'val10' => 10) */
zDelete 命令/方法/函数
Deletes a specified member from the ordered set. 从有序集合中删除指定的成员。 Parameters key member Return value LONG on success, on failure. Example $redis->zAdd('key', , 'val0'); $redis->zAdd('key', , 'val2'); $redis->zAdd('key', , 'val10'); $redis->zDelete('key', 'val2'); $redis->zRange('key', , -); /* array('val0', 'val10') */
zRevRange 命令/方法/函数
Returns the elements of the sorted set stored at the specified key in the range [start, end] in reverse order. start and stop are interpretated as zero-based indices: the first element, the second ... - the last element, - the penultimate ... 返回key对应的有序集合中指定区间的所有元素。这些元素按照score从高到低的顺序进行排列。对于具有相同的score的元素而言,将会按照递减的字典顺序进行排列。该命令与ZRANGE类似,只是该命令中元素的排列顺序与前者不同。 Parameters key start: long end: long withscores: bool = false Return value Array containing the values in specified range. Example $redis->zAdd('key', , 'val0'); $redis->zAdd('key', , 'val2'); $redis->zAdd('key', , 'val10'); $redis->zRevRange('key', , -); /* array('val10', 'val2', 'val0') */ // with scores $redis->zRevRange('key', , -, true); /* array('val10' => 10, 'val2' => 2, 'val0' => 0) */
zRangeByScore 命令/方法/函数
Returns the elements of the sorted set stored at the specified key which have scores in the range [start,end]. Adding a parenthesis before start or end excludes it from the range. +inf and -inf are also valid limits. zRevRangeByScore returns the same items in reverse order, when the start and end parameters are swapped. 返回key对应的有序集合中score介于min和max之间的所有元素(包哈score等于min或者max的元素)。元素按照score从低到高的顺序排列。如果元素具有相同的score,那么会按照字典顺序排列。 可选的选项LIMIT可以用来获取一定范围内的匹配元素。如果偏移值较大,有序集合需要在获得将要返回的元素之前进行遍历,因此会增加O(N)的时间复杂度。可选的选项WITHSCORES可以使得在返回元素的同时返回元素的score,该选项自从Redis .0版本后可用。 Parameters key start: string end: string options: array Two options are available: withscores => TRUE, and limit => array($offset, $count) Return value Array containing the values in specified range. Example $redis->zAdd('key', , 'val0'); $redis->zAdd('key', , 'val2'); $redis->zAdd('key', , 'val10'); $redis->zRangeByScore('key', , ); /* array('val0', 'val2') */ $redis->zRangeByScore('key', , , array('withscores' => TRUE); /* array('val0' => 0, 'val2' => 2) */ $redis->zRangeByScore('key', , , array('limit' => array(, )); /* array('val2' => 2) */ $redis->zRangeByScore('key', , , array('limit' => array(, )); /* array('val2') */ $redis->zRangeByScore('key', , , array('withscores' => TRUE, 'limit' => array(, )); /* array('val2' => 2) */
zCount 命令/方法/函数
Returns the number of elements of the sorted set stored at the specified key which have scores in the range [start,end]. Adding a parenthesis before start or end excludes it from the range. +inf and -inf are also valid limits. 返回key对应的有序集合中介于min和max间的元素的个数。 Parameters key start: string end: string Return value LONG the size of a corresponding zRangeByScore. Example $redis->zAdd('key', , 'val0'); $redis->zAdd('key', , 'val2'); $redis->zAdd('key', , 'val10'); $redis->zCount('key', , ); /* 2, corresponding to array('val0', 'val2') */
zRemRangeByScore, zDeleteRangeByScore 命令/方法/函数
Deletes the elements of the sorted set stored at the specified key which have scores in the range [start,end]. 移除key对应的有序集合中scroe位于min和max(包含端点)之间的所哟元素。从2..6版本后开始,区间端点min和max可以被排除在外,这和ZRANGEBYSCORE的语法一样。 Parameters key start: double or "+inf" or "-inf" string end: double or "+inf" or "-inf" string Return value LONG The number of values deleted from the sorted set Example $redis->zAdd('key', , 'val0'); $redis->zAdd('key', , 'val2'); $redis->zAdd('key', , 'val10'); $redis->zRemRangeByScore('key', , ); /* 2 */
zRemRangeByRank, zDeleteRangeByRank 命令/方法/函数
Deletes the elements of the sorted set stored at the specified key which have rank in the range [start,end]. 移除key对应的有序集合中rank值介于start和stop之间的所有元素。start和stop均是从0开始的,并且两者均可以是负值。当索引值为负值时,表明偏移值从有序集合中score值最高的元素开始。例如:-1表示具有最高score的元素,而-2表示具有次高score的元素,以此类推。 Parameters key start: LONG end: LONG Return value LONG The number of values deleted from the sorted set Example $redis->zAdd('key', , 'one'); $redis->zAdd('key', , 'two'); $redis->zAdd('key', , 'three'); $redis->zRemRangeByRank('key', , ); /* 2 */ $redis->zRange('key', , -, array('withscores' => TRUE)); /* array('three' => 3) */
zSize, zCard 命令/方法/函数
Returns the cardinality of an ordered set. 返回存储在key对应的有序集合中的元素的个数。 Parameters key Return value Long, the set's cardinality Example $redis->zAdd('key', , 'val0'); $redis->zAdd('key', , 'val2'); $redis->zAdd('key', , 'val10'); $redis->zSize('key'); /* 3 */
zScore 命令/方法/函数
Returns the score of a given member in the specified sorted set. 返回key对应的有序集合中member的score值。如果member在有序集合中不存在,那么将会返回nil。 Parameters key member Return value Double Example $redis->zAdd('key', 2.5, 'val2'); $redis->zScore('key', 'val2'); /* 2.5 */
zRank, zRevRank 命令/方法/函数
Returns the rank of a given member in the specified sorted set, starting at for the item with the smallest score. zRevRank starts at for the item with the largest score. 返回key对应的有序集合中member元素的索引值,元素按照score从低到高进行排列。rank值(或index)是从0开始的,这意味着具有最低score值的元素的rank值为0。使用ZREVRANK可以获得从高到低排列的元素的rank(或index)。 Parameters key member Return value Long, the item's score. Example $redis->delete('z'); $redis->zAdd('key', , 'one'); $redis->zAdd('key', , 'two'); $redis->zRank('key', 'one'); /* 0 */ $redis->zRank('key', 'two'); /* 1 */ $redis->zRevRank('key', 'one'); /* 1 */ $redis->zRevRank('key', 'two'); /* 0 */
zIncrBy 命令/方法/函数
Increments the score of a member from a sorted set by a given amount. 将key对应的有序集合中member元素的scroe加上increment。如果指定的member不存在,那么将会添加该元素,并且其score的初始值为increment。如果key不存在,那么将会创建一个新的有序列表,其中包含member这一唯一的元素。如果key对应的值不是有序列表,那么将会发生错误。指定的score的值应该是能够转换为数字值的字符串,并且接收双精度浮点数。同时,你也可用提供一个负值,这样将减少score的值。 Parameters key value: (double) value that will be added to the member's score member Return value DOUBLE the new value Examples $redis->delete('key'); $redis->zIncrBy('key', 2.5, 'member1'); /* key or member1 didn't exist, so member1's score is to 0 before the increment */ /* and now has the value 2.5 */ $redis->zIncrBy('key', , 'member1'); /* 3.5 */
zUnion 命令/方法/函数
Creates an union of sorted sets given in second argument. The result of the union will be stored in the sorted set defined by the first argument. The third optionnel argument defines weights to apply to the sorted sets in input. In this case, the weights will be multiplied by the score of each element in the sorted set before applying the aggregation. The forth argument defines the AGGREGATEoption which specify how the results of the union are aggregated. 对keys对应的numkeys个有序集合计算合集,并将结果存储在destination中。在传递输入keys之前必须提供输入keys的个数和其它可选参数。在默认情况下,元素的结果score是包含该元素的所有有序集合中score的和。如果使用WEIGHTS选项,你可以对每一个有序集合指定一个操作因子。这意味着每一个有序集合中的每个元素的score在传递给聚合函数之前均会被乘以该因子。当WEIGHTS没有指定时,操作因子默认为1。 使用AGGREGATE选项,你可以指定交集中的结果如何被聚合。该选项默认值为SUM,在这种情况下,一个元素的所有score值均会被相加。当选项被设置为MIN或MAX时,结果集合中将会包含一个元素的最大或者最小的score值。如果destination已经存在,那么它将会被重写。 Parameters keyOutput arrayZSetKeys arrayWeights aggregateFunction Either "SUM", "MIN", or "MAX": defines the behaviour to use on duplicate entries during the zUnion. Return value LONG The number of values in the new sorted set. Example $redis->delete('k1'); $redis->delete('k2'); $redis->delete('k3'); $redis->delete('ko1'); $redis->delete('ko2'); $redis->delete('ko3'); $redis->zAdd('k1', , 'val0'); $redis->zAdd('k1', , 'val1'); $redis->zAdd('k2', , 'val2'); $redis->zAdd('k2', , 'val3'); $redis->zUnion('ko1', array('k1', 'k2')); /* 4, 'ko1' => array('val0', 'val1', 'val2', 'val3') */ /* Weighted zUnion */ $redis->zUnion('ko2', array('k1', 'k2'), array(, )); /* 4, 'ko1' => array('val0', 'val1', 'val2', 'val3') */ $redis->zUnion('ko3', array('k1', 'k2'), array(, )); /* 4, 'ko1' => array('val0', 'val2', 'val3', 'val1') */
zInter 命令/方法/函数
Creates an intersection of sorted sets given in second argument. The result of the union will be stored in the sorted set defined by the first argument. The third optionnel argument defines weights to apply to the sorted sets in input. In this case, the weights will be multiplied by the score of each element in the sorted set before applying the aggregation. The forth argument defines the AGGREGATEoption which specify how the results of the union are aggregated. 计算numkeys个由keys指定的有序集合的交集,并且将结果存储在destination中。在该命令中,在你传递输入keys之前,必须提供输入keys的个数和其它可选的参数。 在默认情况下,一个元素的结果score是具有该元素的所有有序集合的score的和。关于WEIGHTS和AGGREGATE选项,可以参看ZUNIONSTORE命令。如果目标已经存在,那么它将会被重写。 Parameters keyOutput arrayZSetKeys arrayWeights aggregateFunction Either "SUM", "MIN", or "MAX": defines the behaviour to use on duplicate entries during the zInter. Return value LONG The number of values in the new sorted set. Example $redis->delete('k1'); $redis->delete('k2'); $redis->delete('k3'); $redis->delete('ko1'); $redis->delete('ko2'); $redis->delete('ko3'); $redis->delete('ko4'); $redis->zAdd('k1', , 'val0'); $redis->zAdd('k1', , 'val1'); $redis->zAdd('k1', , 'val3'); $redis->zAdd('k2', , 'val1'); $redis->zAdd('k2', , 'val3'); $redis->zInter('ko1', array('k1', 'k2')); /* 2, 'ko1' => array('val1', 'val3') */ $redis->zInter('ko2', array('k1', 'k2'), array(, )); /* 2, 'ko2' => array('val1', 'val3') */ /* Weighted zInter */ $redis->zInter('ko3', array('k1', 'k2'), array(, ), 'min'); /* 2, 'ko3' => array('val1', 'val3') */ $redis->zInter('ko4', array('k1', 'k2'), array(, ), 'max'); /* 2, 'ko4' => array('val3', 'val1') */

redis 有序集合(zset)函数的更多相关文章

  1. redis有序集合-zset

    概念:它是在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动按新的值调整顺序.可以理解为有两列的mysql表,一列存储value,一列存储顺序,操作中 ...

  2. Redis有序集合Zset(sorted set)

    zadd/zrange 127.0.0.1:6379> zadd zset01 60 v1 70 v2 80 v3 90 v4 100 v5(integer) 5127.0.0.1:6379&g ...

  3. php使用redis的有序集合zset实现延迟队列

    延迟队列就是个带延迟功能的消息队列,相对于普通队列,它可以在指定时间消费掉消息. 延迟队列的应用场景: 1.新用户注册,10分钟后发送邮件或站内信. 2.用户下单后,30分钟未支付,订单自动作废. 我 ...

  4. 聊聊Mysql索引和redis跳表 ---redis的有序集合zset数据结构底层采用了跳表原理 时间复杂度O(logn)(阿里)

    redis使用跳表不用B+数的原因是:redis是内存数据库,而B+树纯粹是为了mysql这种IO数据库准备的.B+树的每个节点的数量都是一个mysql分区页的大小(阿里面试) 还有个几个姊妹篇:介绍 ...

  5. Redis对象——有序集合(ZSet)

    有序集合类型 (Sorted Set或ZSet) 相比于集合类型多了一个排序属性 score(分值),对于有序集合 ZSet 来说,每个存储元素相当于有两个值组成的,一个是有序结合的元素值,一个是排序 ...

  6. 9、Redis五大数据类型---有序集合Zset(sorted set)

    一.简介 zset与set异同 相同之处: 都是没有重复元素的字符串集合 不同之处: 有序集合zset的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排 ...

  7. PHP+Redis 有序集合实现 24 小时排行榜实时更新

    基本介绍 Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个 double 类型的分数.redis 正是通过分数来为集合中的成员进行从 ...

  8. Redis 有序集合(sorted set)

    Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合中的成员进行从小到大的排序. 有序 ...

  9. redist命令操作(三)--集合Set,有序集合ZSet

    1.Redis 集合(Set) 参考菜鸟教程:http://www.runoob.com/redis/redis-sets.html Redis 的 Set 是 String 类型的无序集合.集合成员 ...

随机推荐

  1. python 将list的值赋值给变量

    list中有n个值,赋值给k个变量:a1, a2, ……,ak n = k时:a1, a2, ……,ak = list n > k时:使用1式报错:ValueError: too many va ...

  2. sql测验,like 和 = 的区别

    .SQL 指的是? 您的回答:Structured Query Language .哪个 SQL 语句用于从数据库中提取数据? 您的回答:SELECT .哪条 SQL 语句用于更新数据库中的数据? 您 ...

  3. Laravel使用心得

    Laravel使用心得 1.session使用 laravel的session使用时,不要使用exit和die,否则session会为空. 2.ajax提交注意框架对post的CSRF保护 在头加上& ...

  4. mac上adb command not found

    第一种报错(使用的自带mac命令行) bash: adb: command not found 1.vim ~/.bash_profile ,如果.bash_profile不存在,先touch ~/. ...

  5. 【洛谷】SAC E#1 Factorial

    别人可以眼杀我却研究了一个小时看了题解才懂的数学题 输入: n, k 输出: n!在k进制下后缀0的个数 n,k <= 10^12 将 n! 表示成 x×2y5z 的形式,其中 x mod 2 ...

  6. python开发之virtualenv与virtualenvwrapper讲解

    在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题: 亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难. 此时,我们需要对于不同的工程使用 ...

  7. react路由

    针对多个列表导航公用一个组建,然后 有两种路由方式 1.import {HashRouter as Router,Route,Link} from 'react-router-dom' 不过这个路由中 ...

  8. Linux 命令分类学习

    Linux常用命令大全(非常全!!!) 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q ...

  9. 使用Dubbo的SPI扩展机制实现自定义LoadBalance——方法二 不改源码添加META-INF/dubbo元数据

    一.官网提供的方法 参考官网 http://dubbo.apache.org/zh-cn/docs/dev/impls/load-balance.html 二.方法总结 在工程中创建类并实现LoadB ...

  10. sqlserver 表循环-游标、表变量、临时表

    SQL Server遍历表的几种方法 阅读目录 使用游标 使用表变量 使用临时表 在数据库开发过程中,我们经常会碰到要遍历数据表的情形,一提到遍历表,我们第一印象可能就想到使用游标,使用游标虽然直观易 ...