Redis技术探索让你彻底会使用“Redis中最陌生且最强大的集合”(ZSET)前篇

追风赶月莫停留,平芜尽处是春山。这篇文章主要讲述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技术探索让你彻底会使用“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

    推荐阅读