Redis技术探索让你彻底会使用“Redis中最陌生且最强大的集合”(ZSET)前篇
Posted 李浩宇Alex
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis技术探索让你彻底会使用“Redis中最陌生且最强大的集合”(ZSET)前篇相关的知识,希望对你有一定的参考价值。
前言介绍
有序集合
ZSET(有序集合)的概念
ZSET(有序集合)的定义
- 有序集合的键被称为成员(member)每个成员各不相同
- 有序集合的值被称为分值(score),分值必须是浮点数
ZADD命令:
-
它的全称叫做: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中的数据
运行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));
ZINTERSTORE
ZUNIONSTORE
以上是关于Redis技术探索让你彻底会使用“Redis中最陌生且最强大的集合”(ZSET)前篇的主要内容,如果未能解决你的问题,请参考以下文章
Redis技术探索帮你从底层彻底吃透RDB技术原理(基础篇)
Redis技术探索「底层架构原理」帮你从底层彻底吃透RDB技术原理(入门第一步)
Redis技术探索帮你从底层彻底吃透AOF技术原理(基础篇)
Redis技术探索「底层架构原理」帮你从底层彻底吃透AOF技术原理(入门第二步)