Redis 四:存储类型之有序集合

有序集合似乎更大的操作是由于加了一个叫做“分子”的东西
事实上就好像普通的数据,只是为这个数据加了一个纯数字的标识,
通过操作这些标识来得到我们想要的数据!
分子可以是整形,也可以是双精度浮点型:
====================================================
1.zadd num 100 a 80 b 70 c
  添加一个叫num的有序集合,a元素为100分,b元素为80分....
2.zscore num a
  获取num集合中元素名为a的分子
====================================================
3.zrange num 0 2
  返回num集合中从0索引开始到2索引!按从小到大的顺序
  返回 c b a
4.zrange num 0 2 withscores
  跟上面一样,只不过会将分子也同时输出出来
  c 70 b 80 a 100
5.zrevrange  跟上面两个一样的用法,区别是从大到小排序
====================================================
6.zrangebyscore num 80 100
  返回分子80 - 100之间的所有元素
7.zrangebysocre num (80 100
  返回分子81 - 100之间的所有元素,加半个括号代表不包含当前端点
8.上述2个命令可以加上withscores,把分子跟元素同时显示出来
=====================================================
9.zrangebysocre num 60 200 limit 0 2
  获取num集合中分子60 - 200之间的前2个(索引0开始,取2个)
=====================================================
10.zincrby num 4 a (用负数就可以减分)
  给num集合中元素名为a的分子+4
11.zcard num 获取num集合中元素个数
12.zcount num 80 200 获取num集合中分子80到200间共有多少个元素
13.zrem num a 删除a
14.zremrangebyrank num 0 2
   删除num集合从索引0开始到索引2位置的3个元素(包括分子一并删除)
15.zremrangebysocre num 40 200
   删除num集合中分子在40到200之间的所有元素(包括分子一并删除)
16.zrank num a
   返回将num中的元素按照分子从小到大排序后,a的元素的位置
   zrevrank num a
   相反,从大到小排序
17.zinterstore num5 2 num2 num
   将num2与num中对应元素的分子相加,将结果存入到num5中
   zadd num1 1 a 2 b 3 c
   zadd num2 10 c 20 a 30 b
   zinterstore num3 2 num1 num2
   zrange num3 0 -1 withscores
   返回:
   c 23 b 32 a 21
18.zinterstore num5 2 num2 num aggregate min
   跟上述一样,只不过只需要最小的值参与
   返回:
   c 3 b 2 a 1
19.zinterstore num5 2 num2 num aggregate max
   最大值参与 

Redis 四:存储类型之有序集合,布布扣,bubuko.com

时间: 2024-10-13 20:46:57

Redis 四:存储类型之有序集合的相关文章

Redis 四:存储类型之无序集合

1.sadd num a b c 向num集合中添加abc三个元素 2.srem num b 从num集合中删除b元素 3.smembers num 获取num集合中所有的元素 4.sismember num c 判断c是否存在num集合中 ============================= 5.运算 sadd num a b c sadd num2 a b c d 差集(计算左边比右边多出来的那部分): sdiff num num 2 返回空 sdiff num2 num 返回d 交集

Redis研究(九)—有序集合类型 2

上一篇已经讲了一部分有序集合类型的命令了 http://blog.csdn.net/wtyvhreal/article/details/42804571 三.命令拾遗 1.获得集合中元素的数量 zcard key 2.获得指定分数范围内的元素个数 <span style="font-size:14px;">zcount key min max</span> 3.删除一个或者多个元素 <span style="font-size:14px;&quo

Redis研究(八)—有序集合类型 1

一.介绍 sorted set为集合中的每个元素都关联了一个分数,所以可以获得分数最高或者最低的前N个元素,获得指定分数范围内的元素等与分数有关的操作.虽然集合中每个元素都是不同的,但是他们的分数却可以相同. 有序集合类型与列表类型有些相似 (1)二者都是有序的 (2)二者都可以获得某一个范围的元素. 但是二者有很大的区别 (1)列表通过链表实现,获取两端数据速度快,访问中间数据速度慢. (2)有序集合类型使用散列表和跳跃表实现,获取中间数据也很快(时间复杂度O(log(N))). (3)列表不

Redis 的数据类型 - Zset 集合类型:有序集合

ZADD:将元素及其分数添加到集合中 语法:ZADD key courseScore member [courseScore member] ZADD courseScore 100 tom ZADD courseScore 99 jerry 88 mario 77 jack 66 lucy 55 chris ZADD courseScore 60 tom 67 apple 56 cherry #这里 tom 已经存在了,直接略过不执行,返回值为 2 # ZADD courseScore 12.

直接在安装了redis的Linux机器上操作redis数据存储类型--对Sorted-Sets操作

一.概述: Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中.它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序.然而需要额外指出的是,尽管Sorted-Sets中的成员必须是唯一的,但是分数(score)却是可以重复的. 在Sorted-Set中添加.删除或更新一个成员都是非常快速的操作,其时间复杂度为集合中成员数量的对数.由于Sorted

Redis命令学习-SortedSet(有序集合)

?ZADD ZADD key score member[score member ... ]:将一个或多个member元素及其score值加入到有序集key中.如果member已经是有序集合中的值,则更新score.score是整数值,双精度值.如果key不存在,则创建一个有序集合,并加入.如果key不是一个有序集合,则返回一个错误. 返回值:成功添加的数量,不包含已经存在和更新的成员. 127.0.0.1:6379> ZADD page_rank 10 google.com (integer)

[redis数据结构] 之 zset(有序集合)

上一篇讲述了无序set集合的使用命令,本文将讲述zset(有序集合)的使用命令以及实例.zset的一个元素由权重和值构成,权重表示的是位置,也就是有序的来由. 1.如果添加一个有序集合元素 语法:zadd [zset集合] [权重(数值类型)] [元素值]# 默认是权重由小到大排列 范例: 阐述:在无序集合中,sadd一个已经存在的元素,是不存添加成功的:虽然在zset中添加一个已经存在的元素也无法添加,但是会可以修改其新设置的元素权重. 例如:   2.如果删除一个元素  语法:zrem [z

Redis常用操作--------SortedSet(有序集合)

1.ZADD key score member [[score member] [score member] ...] 将一个或多个 member 元素及其 score 值加入到有序集 key 当中. 如果某个 member 已经是有序集的成员,那么更新这个 member 的 score 值,并通过重新插入这个 member 元素,来保证该 member 在正确的位置上. score 值可以是整数值或双精度浮点数. 如果 key 不存在,则创建一个空的有序集并执行 ZADD 操作. 当 key 

redis命令之 ----SortedSed(有序集合)

ZADD ZADD key score member [[score member] [score member] ...] 将一个或多个 member 元素及其 score 值加入到有序集 key 当中. 如果某个 member 已经是有序集的成员,那么更新这个 member 的 score 值,并通过重新插入这个 member 元素,来保证该 member 在正确的位置上. score 值可以是整数值或双精度浮点数. 如果 key 不存在,则创建一个空的有序集并执行 ZADD 操作. 当 k