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正是通过 ...
随机推荐
- Selenium2+python自动化-xpath定位语法
前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语 ...
- sublime3配置java开发环境
链接:http://www.jianshu.com/p/48a524a4f63c 或者:http://www.jianshu.com/p/9d167c4c4feb 侵权删!
- Spark配置参数的三种方式
1.Spark 属性Spark应用程序的运行是通过外部参数来控制的,参数的设置正确与否,好与坏会直接影响应用程序的性能,也就影响我们整个集群的性能.参数控制有以下方式:(1)直接设置在SparkCon ...
- 内网集群准同步shell脚本
在公司的内网中配置集群同步,可能是代理问题,ntpd和chrony都没有用,所以只好写shell脚本解决 前提条件集群中各台机器已经配置好了免密登录 一.免密登录配置 1. 用 root 用户登录.每 ...
- 该用哪个:Redis与Memcached之间如何选择呢?
华为云分布式缓存Redis5.0和Memcached都是华为云DCS的核心产品. 那么在不同的使用场景之下,如何选择Redis5.0和Memcached呢? 就由小编为大家进行详细的数据对比分析吧 R ...
- jquery on函数和prop与attr区别
一.jquery on()方法 1.语法 2.例子 $(document).ready(function(){ $("p").on("click",functi ...
- Hands on Machine Learning with sklearn and TensorFlow —— 一个完整的机器学习项目(加州房地产)
数据集地址:https://github.com/ageron/handson-ml/tree/master/datasets 先行知识准备:NumPy,Pandas,Matplotlib的模块使用 ...
- Professional Books
Machine Learning: Pattern Recognition and Machine Learning(PRML) https://mqshen.gitbooks.io/p ...
- strace 命令
介绍 strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核 ...
- php json 转换
在PHP语言中使用JSON 作者: 阮一峰 日期: 2011年1月14日 目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它. 我写过一篇<数据类型和JSON格式& ...