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正是通过 ...
随机推荐
- Linux查看文件内容
查看文件内容的命令: cat:连接文件并且打印在标准输出 tac:连接并且倒序打印文件 more:屏幕文件熟读过滤器 less head:输出文件的第一部分 tail:输出文件最后的部分 nl:输出文 ...
- Tensorflow基本开发架构
Tensorflow基本开发架构 先说句题外话, 这段时间一直研究爬虫技术,主要目的是为将来爬取训练数据做准备,同时学习python编程.这一研究才发现,python的开发资源实在是太丰富了,所有你能 ...
- 使用Photon引擎进行unity网络游戏开发(四)——Photon引擎实现网络游戏逻辑
使用Photon引擎进行unity网络游戏开发(四)--Photon引擎实现网络游戏逻辑 Photon PUN Unity 网络游戏开发 网络游戏逻辑处理与MasterClient 网络游戏逻辑处理: ...
- Atom 插件 Sync Settings 备份与恢复
当使用 Atom IDEA.随着使用的越来越多,安装的插件也越来越多,一旦电脑重装后需要复原开发环境,这将是一件比较头疼的事.「Sync Settings」插件可以帮助我们解决这个问题. 操作流程 安 ...
- PHP性能优化 -实战篇
借助xhprof 工具分析PHP性能 XHPorf(源自Fackbook 的PHP性能分析工具) 实战 通过分析Wordpress程序,做优化! 优化 找到需要优化的函数 grep 'impo ...
- java使用jacob将office文档转换为PDF格式
jacob 包下载地址: http://sourceforge.net/projects/jacob-project/ 下载后,将jacob 与 jacob-1.19-x64.dll放到安装jdk目录 ...
- kafka浅谈
关键词 producer 生产者 broker 缓存代理 consumer 消费者 partition 分区 topic 主题 ...
- 6. 网络信息API
一.用数值表示socket地址&用名字表示socket地址(socket地址==>IP地址和端口号) 1. 用数值表示socket地址不便于记忆,也不便于扩展(比如从IPv4转移到IPv ...
- AVL树 算法思想与代码实现
AVL树是高度平衡的二叉搜索树,按照二叉搜索树(Binary Search Tree)的性质,AVL首先要满足: 若它的左子树不为空,则左子树上所有结点的值均小于它的根结点的值: 若它的右子树不为空, ...
- OpenCV学习笔记——imread、imwrite以及imshow
1.imread Loads an image from a file. 从文件中读取图像. C++: Mat imread(const string& filename, int flags ...