关于Java数据结构转储(本文适合初学者)
有时候想往mysql 或者 redis数据库存点数据结构。尤其是redis,尽量把大块数据打包存起来,减少set 和 get数据次数。再说远点,对分布式数据同步也是有很大的好处。
下面简单介绍一下Java中怎么将一大块数据结构打包存进数据库中。我们将会借用一个桥梁:JSON抽象类
打包数据结构:
private static void test_redis_data_construct() { // 存储前转换成Json格式 Jedis jedis = RedisUtil.getJedis(); Map<Object, Object> map = new HashMap<>(); Map<Object, Object> submap = new HashMap<>(); submap.put("key1", 11); map.put("sub_map", submap); String jsonStr = JSON.toJSONString(map); System.out.println("Create jsonStr: " + jsonStr); jedis.set("test_map", jsonStr); jedis.close(); }
解析数据结构:
private static void test_get_redis_data() { // jsonString转换成Map,注意格式转换与写入时相同 Jedis jedis = RedisUtil.getJedis(); String jsonStr = jedis.get("test_map"); Map<String, HashMap> jsonMap = JSON.parseObject( jsonStr, new TypeReference<HashMap<String, HashMap>>() { }); HashMap subMap = jsonMap.get("sub_map"); System.out.printf("subMap Value is %s \n",subMap.get("key1")); jedis.close(); }