Redis——Jedis中hash类型使用

hset 和 hget

hset可以逐一添加key和value,也可以通过map类型来直接添加多组fields

而hget则返回string类型,如果元素不存在则返回null

private static void hsetAndHget(Jedis jedis) {
    jedis.flushAll();

    jedis.hset("key", "f1", "111");

    Map<String, String> fields = new HashMap<>();
    fields.put("f2", "222");
    fields.put("f3", "333");
    jedis.hset("key", fields);

    String result = jedis.hget("key", "f1");
    System.out.println(result);
    result = jedis.hget("key", "f2");
    System.out.println(result);
    result = jedis.hget("key", "f100");
    System.out.println(result);
}

控制台结果:

111
222
null

hexists

返回值是布尔类型

private static void hexists(Jedis jedis){
    jedis.flushAll();
    jedis.hset("key", "f1", "111");
    boolean result = jedis.hexists("key", "f1");
    System.out.println(result);

    result = jedis.hexists("key", "f100");
    System.out.println(result);
}

控制台输出:

true
false

hdel

返回值代表删除成功的元素的个数,类型是long

public static void hdel(Jedis jedis){
    jedis.flushAll();
    jedis.hset("key", "f1", "111");
    long result = jedis.hdel("key", "f1");
    System.out.println(result);
    System.out.println(jedis.hexists("key", "f1"));
}

控制台输出

1
false

hkeys 和 hvalues

其中hkeys返回的是set类型,而hvals返回的是list类型

public static void hkeysAndhvals(Jedis jedis){
    jedis.flushAll();
    jedis.hset("key", "f1", "111");
    jedis.hset("key", "f2", "222");
    jedis.hset("key", "f3", "333");
    Set<String> fields = jedis.hkeys("key");
    List<String> values = jedis.hvals("key");
    System.out.println(fields);
    System.out.println(values);
}

控制台打印:

[f1, f2, f3]
[111, 222, 333]

hmset 和 hmget

其中hmset需要通过map来同时添加多个元素

private static void hmgetAndhmset(Jedis jedis){
    jedis.flushAll();

    Map<String, String> map = new HashMap<>();
    map.put("f1", "111");
    map.put("f2", "222");
    map.put("f3", "333");

    jedis.hmset("key", map);
    List<String> values = jedis.hmget("key", "f1", "f2");
    System.out.println(values);
}

控制台打印

[111, 222]

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