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正是通过 ...
随机推荐
- InTelliJ 字体调整
Java IDE 工具InTelliJ 调整字体大小 1.File -> Settings 2.左上的搜索框中输入 font. 等待自动查找结果. 3.修改size 大小
- Tree - XGBoost with parameter description
In the previous post, we talk about a very popular Boosting algorithm - Gradient Boosting Decision T ...
- 【Python进阶】无论API怎么变,SDK都可以根据URL实现完全动态的调用
现在很多网站都搞REST API,比如新浪微博.豆瓣啥的,调用API的URL类似: http://api.server/user/friends http://api.server/user/time ...
- 5.airflow问题
1. Traceback (most recent call last): File "/usr/bin/airflow", line 28, in <module> ...
- hbase Problem binding to node1/192.168.1.13:16020 : 地址已在使用
这是hbase 从0.9.x升级到1.x后HMaster与HRegionServer端口冲突问题 在hbase升级到1.0.0版本后,默认端口做了改动.其中16020端口是hmaster服务和hreg ...
- hbase 修复 hbck
hbase 修复使用hbck 新版本的 hbck 可以修复各种错误,修复选项是: (1)-fix,向下兼容用,被-fixAssignments替代 (2)-fixAssignments,用于修复reg ...
- mongoDB操作2
一.find操作 MongoDB中使用find来进行查询,通过指定find的第一个参数可以实现全部和部分查询. 1.查询全部 空的查询文档{}会匹配集合的全部内容.如果不指定查询文档,默认就是{}. ...
- Android开发第二阶段(5)
今天:对图片的替换修改,使整个app的图案化更美观. 明天:对Android的对sdcard的操作学习
- a5
今日内容: 今天主要还是素材的查找,图标的制作以及调整. 明日计划: 主要还是完成图标,尽可能的美化 困难: 一个是直男式的审美吧,另一个是PS的技术还不够深
- 周总结<2>
本打算在这周日写周总结的,但由于事情太多,还要组织团日活动,所以没时间写.不过上周主要是一些书本上的学习,但是在周日的时候完成了一款小游戏还是比较有成就感的,但是主要是因为html的考试才去做的. 代 ...