Redis的Sorted Set有序集合命令
Sorted Set是Set的一个升级版本,它在Set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解为有两列的mysql表,一列存value,一列存顺序。操作中key理解为zset的名字。
Sorted Set有序集合 | |
添加一个元素 | >zadd myzset 1 one 向myzset集合添加一个顺序号为“1”的元素“one” 注: 1.集合中的元素值是唯一的(不允许重复,也没有重复)。 2.重复添加某元素时,虽返回0,但实际会更新了此元素的顺序号值。 3.顺序号值允许重复,即同一顺序号值可以对应多个的元素值(多个元素值可以对应同一顺序号)。 |
使某元素的顺序号自增 | >zincrby myzset 1 three 使元素“three”的顺序号值+1 >zincrby myzset 3 three 使元素“three”的顺序号值+3 >zincrby myzset -2 three 使元素“three”的顺序号值-2 注: 1.给正值就自加,给负值就自减; 2.若给的元素值不存在,则会将其序号值设为0,然后再运算。 返回:返回自增(自减)运算后的结果值 |
部分获取集合元素
注:range 是通过(下标)索引偏移获取元素 |
>zrange myzset 0 -1 withscores 1) "one" 2) "1" 3) "file" 4) "2" 5) "three" 6) "4" 7) "seven" 8) "7" 获取全部元素,并附带序号;排序:zrange将顺序号按从“小->大”排序 >zrange myzset 2 -3 withscores >zrevrange myzset 0 -1 withscores >zrevrange myzset 1 -2 withscores |
先按顺序号从“小->大”排序 然后指定“顺序号区间”获取元素 注:by score 按顺序号取元素 |
>zrange myzset 0 -1 withscores 1) "one" 2) "1" 3) "file" 4) "2" 5) "three" 6) "4" 7) "seven" 8) "7" >zrangebyscore myzset 4 6 withscores >zrangebyscore myzset 4 7 withscores |
先按顺序号从“大->小”排序 然后指定“顺序号区间”获取元素 注:by score 按顺序号取元素 |
>zrevrange myzset 0 -1 withscores 1) "seven" 2) "7" 3) "three" 4) "4" 5) "file" 6) "2" 7) "one" 8) "1" >zrevrangebyscore myzset 7 4 withscores |
先按顺序号从“小->大”排序, 然后获取“指定元素”的下标(索引)值 rank [ræŋk] 次序,顺序 |
>zrange myzset 0 -1 withscores 1) "one" 2) "1" 3) "file" 4) "2" 5) "three" 6) "4" 7) "seven" 8) "7" >zrank myzset one 获取元素“one”的下标(索引)值 (integer) 0 >zrank myzset three 获取元素“three”的下标(索引)值 (integer) 2 注:zrank先将集合按顺序号按“小->大”排序,然后取元素在集合中的下标(索引)顺序,类似数组下标从0开始计数,one和three的下标(索引)值分别是0和2,序号值分别是1和4。元素下标(索引)值 同 元素顺序号值是两个概念。 |
先按顺序号从“大->小”排序, 然后获取“指定元素”的下标(索引)值 rank [ræŋk] 次序,顺序 |
>zrevrange myzset 0 -1 withscores 1) "seven" 2) "7" 3) "three" 4) "4" 5) "file" 6) "2" 7) "one" 8) "1" 说明:zrevrange将序号score值从大到小排序 >zrevrank myzset one (integer) 3 >zrevrank myzset three (integer) 1 one和three的下标(索引)值分别是3和1 |
返回给定元素对应的顺序号 | >zscore myzset three "4" |
先按顺序号从“小->大”排序, 返回给定”顺序号区间“的元素个数 |
>zrange myzset 0 -1 withscores 1) "one" 2) "1" 3) "file" 4) "2" 5) "three" 6) "4" 7) "seven" 8) "7" >zcount myzset 2 3 |
获取集合中元素总个数 | >zcard myzset 返回集合中的元素总个数; |
按元素名称删除元素 | >zrem myzset two 从myzset集合中删除指定元素“two”,对应序号被一起删除 >zrem myzset four six 返回实际被删除的元素个数 |
先按顺序号从“小->大”排序, 按索引(下标)区间删除元素 |
>zremrangebyrank myzset 1 1 删除索引(下标)区间在[1,1]的元素,即删除下标为1的元素 >zremrangebyrank myzset 2 4 返回实际被删除的元素个数 |
先按顺序号从“小->大”排序, 按顺序号区间删除元素 |
>zremrangebyscore myzset 2 2 (integer) 1 删除顺序号区间在[2,2]的元素,即:删除顺序号为2的元素。 >zremrangebyscore myzset 2 4 返回实际被删除的元素个数 |
Redis的Sorted Set有序集合命令的更多相关文章
- Redis之Sorted Set 有序集合
Redis Sorted Set 有序集合 Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过分 ...
- redis 学习(7) -- 有序集合
redis 学习(7) -- 有序集合 zset 结构 有序集合:有序.不能包含重复元素 每个节点包含:score和value两个属性,根据score进行排序 如图: zset 重要 API 含义 命 ...
- Redis 源码简洁剖析 04 - Sorted Set 有序集合
Sorted Set 是什么 Sorted Set 命令及实现方法 Sorted Set 数据结构 跳表(skiplist) 跳表节点的结构定义 跳表的定义 跳表节点查询 层数设置 跳表插入节点 zs ...
- Redis之有序集合命令
Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过 ...
- 15天玩转redis —— 第六篇 有序集合类型
今天我们说一下Redis中最后一个数据类型 “有序集合类型”,回首之前学过的几个数据结构,不知道你会不会由衷感叹,开源的世界真好,写这 些代码的好心人真的要一生平安哈,不管我们想没想的到的东西,在这个 ...
- lunix下的redis数据库操作——zset有序集合
创建:(有序集合存在一个权重的概念) zadd zset 1 a 2 b 3 c 4 d 5 e 6 f 7 g # 输出: # 1) "a" # 2) "b" ...
- Redis 之order set有序集合结构及命令详解
1.zadd key score1 value1 score2 value2 添加元素 2.zrem key value1 value2 .. 删除集合中的元素 3.zremrangebyscor ...
- Redis命令拾遗五(有序集合)
本文版权归博客园和作者吴双本人共同所有,博客园蜗牛NoSql系列分享 http://www.cnblogs.com/tdws/tag/NoSql/ Sorted Set 有序集合—Sorted Set ...
- Redis 有序集合(sorted set),发布订阅,事务,脚本,连接,服务器(三)
Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过 ...
随机推荐
- Spring学习(十二)-----Spring @PostConstruct和@PreDestroy实例
实现 初始化方法和销毁方法3种方式: 实现标识接口 InitializingBean,DisposableBean(不推荐使用,耦合性太高) 设置bean属性 Init-method destroy- ...
- Sublime Text3.0的安装
Sublime Text是一款轻量级的易于使用的前端编写软件,个人比较推荐. 找到Sublime的官网,下载对应的版本后,点击安装.安装完成后需要下载相应的插件才能进行更加 有效率的开发工作.编写前端 ...
- HTML5 + CSS3 实现地球绕太阳公转
使用的是正面视角,主要是用 HTML5 + CSS3 来实现,JS只是用来画图. test.html: <!DOCTYPE html> <html> <head> ...
- Python函数标注
Python函数标注 是关于用户自定义函数中使用的类型的完全可选元数据信息. 函数标注 以Python字典的形式存放在函数的 __annotations__ 属性中,并且不会影响函数的任何其他部分. ...
- Paper Reading - Im2Text: Describing Images Using 1 Million Captioned Photographs ( NIPS 2011 )
Link of the Paper: http://papers.nips.cc/paper/4470-im2text-describing-images-using-1-million-captio ...
- springjdbc使用c3p0连接池报错 java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector
MyMaincom.test.sunc.MyMaintestMethod(com.test.sunc.MyMain)org.springframework.beans.factory.BeanCrea ...
- scrapy-redis+selenium+webdriver 部署到linux上
背景:在使用selenium时,在本地使用windows,都会有一个图形界面,但是到了生产环境linux上没有了图形界面怎么部署呢? 解决方案: 1.安装图形化界面,不推荐,因为安装图形化界面会占用很 ...
- CSS3在线实战
作者声明:本博客中所写的文章,都是博主自学过程的笔记,参考了很多的学习资料,学习资料和笔记会注明出处,所有的内容都以交流学习为主.有不正确的地方,欢迎批评指正. 本节课视频网站:https://www ...
- Scrum立会报告+燃尽图(十月二十一日总第十二次)
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2246 项目地址:https://git.coding.net/zhang ...
- Android 7.1.1 又出幺蛾子了 —— 再谈 Android 上的 Wifi 连接
在之前的博客文章中,我写了点在 Android 6 系统中连接到指定名称的 Wifi 的体验.然而,在 Android 7 中,有一些东西又变化了.另外就是在那篇文章中我说要提供代码,结果拖到这篇文章 ...