public class HashTest {
public static void main(String[] args) {
Jedis jedis = RedisUtil.getJedis();
jedis.flushDB(); // 清空
//hash HashMap 键值对
Map<String,String> map = new HashMap<>();
map.put("k1", "v1");
map.put("k2", "v2");
map.put("k3", "v3");
map.put("k4", "v4");
//将一个Map集合存入redis中
jedis.hmset("hash1", map);
//往map中追加一个键值对
jedis.hset("hash1", "k5", "v5");
System.out.println("查看Hash中所有键值对:"+jedis.hgetAll("hash1"));
System.out.println("查看Hash中的所有key值:"+jedis.hkeys("hash1"));
System.out.println("查看Hash中的所有value值:"+jedis.hvals("hash1"));
//数字增加操作
//如果操作的键值对在hash中不存在,那么会将该键值对添加到hash中
//如果存在,则对之进行累加操作
//如果值是一个非数字类型,则会报错
System.out.println(jedis.hincrBy("hash1", "k6", 5));
System.out.println("查看Hash中的所有value值:"+jedis.hvals("hash1"));
System.out.println(jedis.hincrBy("hash1", "k6", 5));
System.out.println("查看Hash中的所有value值:"+jedis.hvals("hash1"));
System.out.println("获取hash中的可变长度键值对:"+jedis.hmget("hash1", "k1","k6"));
System.out.println("只能获取一个键值对:"+jedis.hget("hash1", "k1"));
System.out.println("删除hash中某个键值对:"+jedis.hdel("hash1", "k1"));
System.out.println("查看Hash中所有键值对:"+jedis.hgetAll("hash1"));
System.out.println("更新:"+jedis.hset("hash1", "k3", "更新了v3"));
System.out.println("查看Hash中所有键值对:"+jedis.hgetAll("hash1"));
System.out.println("判断一个键值对在Hash中是否存在:"+jedis.hexists("hash1", "k1"));
}
}
查看Hash中所有键值对:{k3=v3, k4=v4, k5=v5, k1=v1, k2=v2}
查看Hash中的所有key值:[k3, k4, k5, k1, k2]
查看Hash中的所有value值:[v3, v1, v2, v4, v5]
5
查看Hash中的所有value值:[v3, v1, v2, v4, v5, 5]
10
查看Hash中的所有value值:[v3, v1, v2, v4, v5, 10]
获取hash中的可变长度键值对:[v1, 10]
只能获取一个键值对:v1
删除hash中某个键值对:1
查看Hash中所有键值对:{k3=v3, k4=v4, k5=v5, k6=10, k2=v2}
更新:0
查看Hash中所有键值对:{k3=更新了v3, k4=v4, k5=v5, k6=10, k2=v2}
判断一个键值对在Hash中是否存在:false