Redis之Jedis中zset类型使用方式
作者:Xiao8830
zadd的score为double类型,添加多个元素需用map;zrange返回List,zrangeWithScore返回List<Tuple>,zcard和zrem返回Long,zscore返回Double包装类需注意null,zrank返回Long包装类
zadd 和 zrange
其中zadd的score是double类型,如果要添加多个元素需要使用map
而zrange返回的则是list类型
而zrangeWithScore返回的是List< Tuple >类型,Tuple代表元组,可以根据下标获取对应位置的key的value
public static void zaddAndzrange(Jedis jedis){ jedis.flushAll(); jedis.zadd("key", 100, "curry"); Map<String, Double> map = new HashMap<>(); map.put("lebron", 95.0); map.put("durant", 97.0); jedis.zadd("key", map); List<String> members = jedis.zrange("key", 0, -1); System.out.println(members); List<Tuple> result = jedis.zrangeWithScores("key", 0, -1); System.out.println(result); double score = result.get(0).getScore(); System.out.println(score); }
控制台输出
[lebron, durant, curry] [[lebron,95.0], [durant,97.0], [curry,100.0]] 95.0
zcard
返回值为long类型
public static void zcard(Jedis jedis){ jedis.flushAll(); jedis.zadd("key", 100, "curry"); Map<String, Double> map = new HashMap<>(); map.put("lebron", 95.0); map.put("durant", 97.0); jedis.zadd("key", map); long size = jedis.zcard("key"); System.out.println(size); }
控制台输出
3
zrem
public static void zrem(Jedis jedis){ jedis.flushAll(); jedis.zadd("key", 100, "curry"); Map<String, Double> map = new HashMap<>(); map.put("lebron", 95.0); map.put("durant", 97.0); jedis.zadd("key", map); long n = jedis.zrem("key", "lebron", "durant"); System.out.println(n); System.out.println(jedis.zrange("key", 0, -1)); }
控制台输出:
2 [curry]
zscore
返回的是Double,需要注意这里是包装类的Double,不要用double进行接收,防止key不存在返回null
public static void zscore(Jedis jedis){ jedis.flushAll(); jedis.zadd("key", 100, "curry"); Double score = jedis.zscore("key", "curry"); System.out.println(score); System.out.println(jedis.zscore("key", "zhangsan")); }
控制台输出
100.0 null
zrank
这里的返回值是Long,也是包装类,需要注意返回null的情况
public static void zrank(Jedis jedis){ jedis.flushAll(); jedis.zadd("key", 100, "curry"); Map<String, Double> map = new HashMap<>(); map.put("lebron", 95.0); map.put("durant", 97.0); jedis.zadd("key", map); Long rank = jedis.zrank("key", "durant"); System.out.println(rank); }
控制台输出
1
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。