目录
使用命令 zadd,zrange
使用命令 zcard
使用命令 zrem
使用命令 zscore
使用命令 zrank
关于 redis zset 有序集合类型的相关命令推荐看Redis - Zset 有序集合
要想通过 Java 操作 redis,首先要连接上 redis 服务器,推荐看通过 Java 操作 redis -- 连接 redis
本博客只介绍了一小部分常用的命令,其他的命令根据上面推荐的博客也能很简单的使用出来(推荐先看上面推荐的博客,有 redis 的原生命令)
使用命令 zadd,zrange
/**
* 使用命令 zadd,zrange
* */
public static void test1(Jedis jedis){
//清空 redis 所有数据库中的数据
jedis.flushAll();
//向 redis 中插入类型为 zset 的键值对 key1,有序集合的元素为 zhangsan,分数为 10
//返回值为插入成功的元素个数
long result1=jedis.zadd("key1",10,"zhangsan");
System.out.println("result1:"+result1);
Map<String,Double> map=new HashMap<>();
map.put("lisi",20.0);
map.put("wangwu",30.0);
//配合 Map,一次性向 key1 对应的有序集合中插入两个元素
//返回值为插入成功的元素个数
long result2=jedis.zadd("key1",map);
System.out.println("result2:"+result2);
//获取 key1 对应的有序集合中,下标 0 ~ -1(最后一位)之间的所有元素
List<String> result3=jedis.zrange("key1",0,-1);
System.out.println("result3:"+result3);
//获取 key1 对应的有序集合中,下标 0 ~ -1(最后一位)之间的所有元素和分数
// Tuple 是 Jedis 中定义的类,表示元组,元素和分数表示一个二元组
List<Tuple> elementAndScore=jedis.zrangeWithScores("key1",0,-1);
System.out.println("elementAndScore:"+elementAndScore);
//通过 List<Tuple> 类型的对象可以获取指定下标元组的元素
String result4=elementAndScore.get(0).getElement();
System.out.println("result4:"+result4);
//通过 List<Tuple> 类型的对象可以获取指定下标元组的分数
Double result5=elementAndScore.get(0).getScore();
System.out.println("result5:"+result5);
}
运行结果
使用命令 zcard
/**
* 使用命令 zcard
* */
public static void test2(Jedis jedis){
//清空 redis 所有数据库中的数据
jedis.flushAll();
Map<String,Double> map=new HashMap<>();
map.put("zhangsan",10.0);
map.put("lisi",20.0);
map.put("wangwu",30.0);
jedis.zadd("key1",map);
//获取有序集合 key1 中的元素个数
long result1=jedis.zcard("key1");
System.out.println("result1:"+result1);
}
运行结果
使用命令 zrem
/**
* 使用命令 zrem
* */
public static void test3(Jedis jedis){
//清空 redis 所有数据库中的数据
jedis.flushAll();
Map<String,Double> map=new HashMap<>();
map.put("zhangsan",10.0);
map.put("lisi",20.0);
map.put("wangwu",30.0);
jedis.zadd("key1",map);
//删除 key1 对应的有序集合中的元素 zhangsan 和 lisi ,返回删除成功的元素个数
long result1=jedis.zrem("key1","zhangsan","lisi");
System.out.println("result1:"+result1);
}
运行结果
使用命令 zscore
/**
* 使用命令 zscore
* */
public static void test4(Jedis jedis){
//清空 redis 所有数据库中的数据
jedis.flushAll();
Map<String,Double> map=new HashMap<>();
map.put("zhangsan",10.0);
map.put("lisi",20.0);
map.put("wangwu",30.0);
jedis.zadd("key1",map);
Double result1=jedis.zscore("key1","zhangsan");
System.out.println("result1:"+result1);
}
运行结果
使用命令 zrank
/**
* 使用命令 zrank
* */
public static void test5(Jedis jedis){
//清空 redis 所有数据库中的数据
jedis.flushAll();
Map<String,Double> map=new HashMap<>();
map.put("zhangsan",10.0);
map.put("lisi",20.0);
map.put("wangwu",30.0);
jedis.zadd("key1",map);
//获取 key1 对应的有序集合中,元素 zhangsan 对应的排名
Long result1=jedis.zrank("key1","zhangsan");
System.out.println("result1:"+result1);
}
运行结果