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]