zset类型以及其操作
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类型以及其操作的更多相关文章
- zset类型数据的操作指令
1. 也可以追加数据 2. 3. 4. 5. 6. 7. 8. 9.
- 7、Redis中对ZSet类型的操作命令
写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- ---------- ...
- RedisTemplate中zset类型的使用
简述 上一文中简述了使用StringRedisTemplate操作redis中的set类型,今天来记录一下操作zset类型的主要方法 代码 @RunWith(SpringRunner.class) @ ...
- 最全的Java操作Redis的工具类,使用StringRedisTemplate实现,封装了对Redis五种基本类型的各种操作!
转载自:https://github.com/whvcse/RedisUtil 代码 ProtoStuffSerializerUtil.java import java.io.ByteArrayInp ...
- Redis自学笔记–Zset类型及管理简述
Zset类型 ...
- 对控制器类型“StudentController”的操作“Edit”的当前请求在下列操作方法之间不明确:
"/"应用程序中的服务器错误. 对控制器类型"StudentController"的操作"Edit"的当前请求在下列操作方法之间不明确:类型 ...
- Python(Redis 中 Set/Zset 类型数据和其他操作)
1.redis 基本操作命令 Set 操作 Set 集合就是不允许重复的列表 无序集合 sadd(name,values) 给 name 对应的集合中添加 1 个或多个元素 import redis ...
- Redis学习第六课:Redis ZSet类型及操作
Sorted set是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素时候可以指定,每次指定后,zset会自动重新按新的值调整顺序.可以理解为有两列字段的数据表,一列 ...
- Redis学习篇(六)之ZSet类型及其操作
ZADD 作用: 将元素及其分数添加到集合中 语法: ZADD key score membre [score member] 当集合元素已经存在时,再次添加会更新其分数 当score是 +inf 时 ...
随机推荐
- request.getQueryString()代表的含义
在jsp做分页的时候,有时候我们想获取get请求链接中的参数保留下来. 比如客户端发送 http://localhost/test.do?a=b&c=d&e=f 通过request.g ...
- 测试应用documentFragment 和 直接操作dom 的区别
DocumentFragment 节点不属于文档树,继承的 parentNode 属性总是 null. 不过它有一种特殊的行为,该行为使得它非常有用,即当请求把一个 DocumentFragment ...
- 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) 原因分析: ...
- USB详解
USB作为一种串行接口,应用日益广泛.如同每个工程设计人员必须掌握I2C,RS232这些接口一样,我们也必须掌握USB.但是USB的接口协议实在有点费解,Linux UCHI驱动作者之一Alan St ...
- 在vim中的复制,剪切,粘贴
1. 剪切和粘贴 定位鼠标到剪切的开始位置 输入v键开始选择剪切的字符,或者V键是为了选择 整行 移动方向键到结束的地方 d键是剪切,y键是复制 移动鼠标到粘贴的位置 输入P是在鼠标位置前粘贴,输入p ...
- “Too many open files” 小记
pycharm远程链接centos7开发过程中突然遇到“Too many open files”. 几点记录: 1. 命令:ulimit -n 查看系统配置,其中的 表示每个进程最多能打开8192个文 ...
- Session存储
session其实分为服务器端Session和客户端Session. 当用户首次与Web服务器建立连接的时候,服务器会给用户分发一个sessionid作为标识.用户每次提交页面,浏览器都会把这个ses ...
- ZeroMq实现跨线程通信
ZeroMq实现跨线程通信 之前在技术崇拜的技术经理指导下阅读了ZeroMq的基础代码,现在就将阅读的心得与成果记录一下,并重新模仿实现了一下经理的异步队列. 1.对外接口 //主要接口(1)void ...
- 《高级Web应用程序设计》疑难杂症(201709011)
(提供答案的同学,可获得加分小星星,每题1分,总分哦.) 1.DisplayColumn特性加在模型类上,它的用途是什么?
- Js判断是否联网引入不同js
需求:当百度地图在内网中也能使用. 分析:js判断是否联网,然后根据联网状态加载不同js. 失败案例: 1.直接document.write <script language="jav ...