sorted set类型

sorted sets类型以及其操作
zset是set的一格升级版本,它在set的基础上增加了一格顺序属性,这一属性在添加元素的同时可以指定,每次指定后,zset会自动重新按照新的值调整顺序。可以理解为有两列的mysql表,一列存储value,一列存储顺序。操作中key理解成zset的名字。

zadd
向名称为key的zset中添加元素member,score用于排序,如果该元素存在,则更新其顺序

127.0.0.1:> zadd key [NX|XX] [CH] [INCR] score member [score member ...]
127.0.0.1:> zadd zset one
(integer)
127.0.0.1:> zadd zset - two
(integer)

zrange
遍历集合的元素
127.0.0.1:6379> zrange key start stop [WITHSCORES] //withscores代表的是否显示顺序号  start和stop代表所在的位置的索引。可以这样理解:将集合元素依照顺序值升序排序再输出,start和stop限制遍历的限制范围

127.0.0.1:> zadd zset - hhh
(integer)
127.0.0.1:> zrange zset
) "hhh"。
127.0.0.1:> zrange zset - withscore
) "two"
) "-1"
) "one"
) ""
zset元素也是不重复的,不要将它理解成为map了,score只是附加的,并不是array中的Index,而是代表该元素的顺序号
同一个顺序可以有多个元素:
127.0.0.1:6379>  zrange zset 0 -1 withscores
1) "one"
2) "0"
3) "two"
4) "0"

zrem
删除集合中的member元素

127.0.0.1:> zrange zset  - withscores
) "one"
) ""
) "two"
) ""
) "three"
) ""
127.0.0.1:> zrem zset one
(integer)
127.0.0.1:> zrange zset -
) "two"
) "three"

zincrby
如果在名称为key的zset中已经存在元素member,则该元素的score增加incremenr否则向该集合中添加该元素,其score的值为increment

127.0.0.1:> zincrby key increment member
127.0.0.1:> zincrby zset two
""
127.0.0.1:> zincrby zset four
""
127.0.0.1:> zrange zset - withscores
) "four"
) ""
) "three"
) ""
) "two"
) ""
127.0.0.1:>
127.0.0.1:> zincrby zset - two
""

zrank
返回名称为key的zset中member元素的排名(类似索引从0开始)(按score从小到大排序)即下标

127.0.0.1:> zrank key member
127.0.0.1:> zrange zset - withscores
) "two"
) ""
) "four"
) ""
) "three"
) ""
127.0.0.1:> zrank zset two
(integer)
127.0.0.1:> zrank zset four
(integer)
127.0.0.1:> zrank zset three
(integer)

注意得到的是排名而不是顺序值score

zrevrank
rev:代表翻转
返回名称为key的zset中member元素的排名(按score从大到小排序),即下标

127.0.0.1:> zrange zset  - withscores
) "hhh"
) "-1"
) "hi"
) ""
) "two"
) ""
) "four"
) ""
) "three"
) ""
127.0.0.1:> zrank zset hhh
(integer)
127.0.0.1:> zrevrank zset hhh
(integer)

zrevrange
按照顺序值降序排序然后显示指定下标内的值

127.0.0.1:> zrevrange key start stop [WITHSCORES]
127.0.0.1:> zrevrange zset - withscores
) "three"
) ""
) "four"
) ""
) "two"
) ""
) "hi"
) ""
) "hhh"
) "-1"
127.0.0.1:> zrange zset - withscores
) "hhh"
) "-1"
) "hi"
) ""
) "two"
) ""
) "four"
) ""
) "three"
) ""

zrangebyscore
就是利用score升序排序,而是返回集合中score给定区间内的元素。范围内的元素一句score升序排序。start和stop代表的不再是index而是score

127.0.0.1:> zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
127.0.0.1:> zrange zset - withscores
) "hhh"
) "-1"
) "hi"
) ""
) "two"
) ""
) "four"
) ""
) "three"
) ""
127.0.0.1:> zrangebyscore zset - withscores
) "hhh"
) "-1"
) "hi"
) ""
) "two"
) ""

zcount
返回集合中score指定区间中元素的数量

127.0.0.1:> zcount key min max
127.0.0.1:> zcount zset -
(integer)

zcard
返回集合中的集合元素

127.0.0.1:> zcard zset
(integer)

zremrangebyrank
删除集合中排名在指定区间内的元素,排名意思是index,排序值是score

127.0.0.1:> zremrangebyrank key start stop
127.0.0.1:> zrange zset - withscores
) "hhh"
) "-1"
) "hi"
) ""
) "two"
) ""
) "four"
) ""
) "three"
) ""
127.0.0.1:> zremrangebyrank zset
(integer)
127.0.0.1:> zrange zset - withscores
) "four"
) ""
) "three"
) ""

remrangebyscore
删除集合中排序值在指定区间的元素

127.0.0.1:> zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
127.0.0.1:> zrange zset - withscores
) "four"
) ""
) "three"
) ""
127.0.0.1:> zremrangebyscore zset
(integer)
127.0.0.1:> zremrangebyscore zset
(integer)
127.0.0.1:> zrange zset - withscores
(empty list or set)

zset类型以及其操作的更多相关文章

  1. zset类型数据的操作指令

    1. 也可以追加数据 2. 3. 4. 5. 6. 7. 8. 9.

  2. 7、Redis中对ZSet类型的操作命令

    写在前面的话:读书破万卷,编码如有神 --------------------------------------------------------------------   ---------- ...

  3. RedisTemplate中zset类型的使用

    简述 上一文中简述了使用StringRedisTemplate操作redis中的set类型,今天来记录一下操作zset类型的主要方法 代码 @RunWith(SpringRunner.class) @ ...

  4. 最全的Java操作Redis的工具类,使用StringRedisTemplate实现,封装了对Redis五种基本类型的各种操作!

    转载自:https://github.com/whvcse/RedisUtil 代码 ProtoStuffSerializerUtil.java import java.io.ByteArrayInp ...

  5. Redis自学笔记–Zset类型及管理简述

    Zset类型                                                                                               ...

  6. 对控制器类型“StudentController”的操作“Edit”的当前请求在下列操作方法之间不明确:

    "/"应用程序中的服务器错误. 对控制器类型"StudentController"的操作"Edit"的当前请求在下列操作方法之间不明确:类型 ...

  7. Python(Redis 中 Set/Zset 类型数据和其他操作)

    1.redis 基本操作命令 Set 操作 Set 集合就是不允许重复的列表 无序集合 sadd(name,values) 给 name 对应的集合中添加 1 个或多个元素 import redis ...

  8. Redis学习第六课:Redis ZSet类型及操作

    Sorted set是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素时候可以指定,每次指定后,zset会自动重新按新的值调整顺序.可以理解为有两列字段的数据表,一列 ...

  9. Redis学习篇(六)之ZSet类型及其操作

    ZADD 作用: 将元素及其分数添加到集合中 语法: ZADD key score membre [score member] 当集合元素已经存在时,再次添加会更新其分数 当score是 +inf 时 ...

随机推荐

  1. request.getQueryString()代表的含义

    在jsp做分页的时候,有时候我们想获取get请求链接中的参数保留下来. 比如客户端发送 http://localhost/test.do?a=b&c=d&e=f 通过request.g ...

  2. 测试应用documentFragment 和 直接操作dom 的区别

    DocumentFragment 节点不属于文档树,继承的 parentNode 属性总是 null. 不过它有一种特殊的行为,该行为使得它非常有用,即当请求把一个 DocumentFragment ...

  3. Java:出现错误提示(java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date)

    Java:出现错误提示(java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date) 原因分析: ...

  4. USB详解

    USB作为一种串行接口,应用日益广泛.如同每个工程设计人员必须掌握I2C,RS232这些接口一样,我们也必须掌握USB.但是USB的接口协议实在有点费解,Linux UCHI驱动作者之一Alan St ...

  5. 在vim中的复制,剪切,粘贴

    1. 剪切和粘贴 定位鼠标到剪切的开始位置 输入v键开始选择剪切的字符,或者V键是为了选择 整行 移动方向键到结束的地方 d键是剪切,y键是复制 移动鼠标到粘贴的位置 输入P是在鼠标位置前粘贴,输入p ...

  6. “Too many open files” 小记

    pycharm远程链接centos7开发过程中突然遇到“Too many open files”. 几点记录: 1. 命令:ulimit -n 查看系统配置,其中的 表示每个进程最多能打开8192个文 ...

  7. Session存储

    session其实分为服务器端Session和客户端Session. 当用户首次与Web服务器建立连接的时候,服务器会给用户分发一个sessionid作为标识.用户每次提交页面,浏览器都会把这个ses ...

  8. ZeroMq实现跨线程通信

    ZeroMq实现跨线程通信 之前在技术崇拜的技术经理指导下阅读了ZeroMq的基础代码,现在就将阅读的心得与成果记录一下,并重新模仿实现了一下经理的异步队列. 1.对外接口 //主要接口(1)void ...

  9. 《高级Web应用程序设计》疑难杂症(201709011)

    (提供答案的同学,可获得加分小星星,每题1分,总分哦.) 1.DisplayColumn特性加在模型类上,它的用途是什么?

  10. Js判断是否联网引入不同js

    需求:当百度地图在内网中也能使用. 分析:js判断是否联网,然后根据联网状态加载不同js. 失败案例: 1.直接document.write <script language="jav ...