追风赶月莫停留,平芜尽处是春山。这篇文章主要讲述Redis技术探索让你彻底会使用“Redis中最陌生且最强大的集合”(ZSET)前篇相关的知识,希望能为你提供帮助。
前言介绍
有序集合
ZSET(有序集合)的概念ZSET(有序集合)的定义
- 有序集合的键被称为成员(member)每个成员各不相同
- 有序集合的值被称为分值(score),分值必须是浮点数
- 它的全称叫做:zset add,将给定分值的成员添加到有序集合里面
- 因为有序集合是自排序的,所以也不像列表一样有左插入或右插入
# zadd key score value
zadd zset-weight 60 Kelvin
java代码
System.out.println(conn.zadd("zset-weight",60,"Kelvin"));
作用返回
- “1” 存入成功
- “0” 存入失败,zset-weight已经存在该键值对
zadd zset-weight 40 Lina
zadd zset-weight 50 Oscar
zadd zset-weight 70 Mike
ZREM(移除)指令
zrem zset-weight Mike
- 作用:移除zset-weight中键为Mike的元素
- 返回:" 1" 表示移除元素数量为1
System.out.println(conn.zrem("zset-weight","Mike"));
ZCARD指令
zcard high
java代码
System.out.println(conn.zadd("high",180,"Kelvin"));
System.out.println(conn.zadd("high",160,"Lina"));
System.out.println(conn.zadd("high",177,"Mike"));
System.out.println(conn.zcard("high"));
ZINCRBY
System.out.println(conn.zincrby("high",2,"Kelvin"));
ZCOUNT
System.out.println(conn.zcount("high",165,190));
ZRANK
System.out.println(conn.zrank("high","Kelvin"));
ZSCORE
System.out.println(conn.zscore("high","Kelvin"));
ZRANGE(获取)
- ZRANGE全称:zset range key start end [WITHSCORES] ,取出zset-weight中索引值在[start,end]之间的成员,即该范围内的键值对,如果给定了可选WITHSCORES的选项,那么命令会将成员的分值也一并返回。
- 如果希望全部取出来,可以采用start=0,end=-1,可以看出来是一个环路,前开后闭。如果start选择了1,就无法获取第一个,拿出来的数据会少一个!而end=-1 则则说明获取到最后一个
zrange key start end withscores
zrange zset-weight 0 -1 withscores
返回
(1)"Lina"
(2)"40"
(3)"Oscar"
(4)"50"
(5)"Kelvin"
(6)"60"
(7)"Mike"
(8)"70"
System.out.println(conn.zrange("high",3,6));
System.out.println(conn.zrangeWithScores("high",3,6));
ZRANGEBYSCORE需求场景指令
zrangebyscore key start end [withscores]
zrangebyscore zset-weight 160 180 withscores
java代码
System.out.println(conn.zrangeByScore("high",160,180));
作用返回
(1)"Lina"
(2)"40"
(3)"Oscar"
(4)"50"
(5)"Kelvin"
(6)"60"
ZREVRANGE指令
zrevrange key start end withscores
zrevrange zset-weight 0 -1 withscores
java代码
System.out.println(conn.zrevrange("high",1,5));
ZREVRANGEBYSCORE指令
zrevrangebyscore key start end
zrevrangebyscore high 180 160
Java代码
System.out.println(conn.zrevrangeByScore("high",180,160));
ZREVRANK
System.out.println(conn.zrevrank("high","Yellow"));
System.out.println(conn.zrevrank("high","Kelvin"));
ZREMRANGEBYRANK【Redis技术探索让你彻底会使用“Redis中最陌生且最强大的集合”(ZSET)前篇】在移除之间先查看一下redis中的数据
运行Java代码
System.out.println(conn.zremrangeByRank("high",2,4));
ZREMRANGENYSCORE
System.out.println(conn.zadd("high",174,"Jay"));
System.out.println(conn.zadd("high",169,"Pei"));
System.out.println(conn.zadd("high",186,"Jone"));
System.out.println(conn.zremrangeByScore("high",0,170));
ZINTERSTOREZUNIONSTORE
推荐阅读
- 红帽Linux入门指南第四期(系统的基本操作命令)
- 最终一致性和实时一致性是什么(在架构设计中,我们应该选择哪种方式?)
- Oracle在MySQL市场掀起了一股热潮
- 一文搞懂jsBridge的运行机制
- 博客总结(导航)
- 前端劝退之前端知识体系(前端面试体系)
- 对线面试官之MySQL索引篇
- Node.js 应用全链路追踪技术——[全链路信息获取]
- 深度好文如何基于谷歌SRE理论,建设企业IT应用系统稳定性能力()