Redis——Jedis中zset类型使用

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

你可能感兴趣的:(java,数据库,redis,redis,python,数据库)