前言介绍

有序集合

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

09-06 22:16