使用redis客户端中对于json数据格式的存储和读取
代码背景:
现在有一个json格式的数据,但是由于redis客户端上面没办法直接创建/导入json的数据格式。
故考虑现在redis客户端上先存储一个名为"old_order"的string类型的的源数据。
思路:
由于直接使用redisTemplate获取自动导入的string类型的数据会因为数据格式而不完整,因此这边可以调用stringRedisTemplate来进行获取给jsonString。
然后根据获取到的数据,再使用JSON.parseObject转换数据类型,转成目标json格式的arrayList。
最后,再使用JSON.toJSONString将其转成string类型的格式,使用redisTemplate存储到redis中。
这样,存储到redis中的值下次需要用的时候,就可以直接redisTemplate.opsForValue().get(key1)即可获取到。
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
public class xxxServiceImpl implements xxxService {
// 分别进行依赖注入
@Resource
private StringRedisTemplate stringRedisTemplate;
@Resource
private RedisTemplate redisTemplate;
@Override
public void String2Json() {
String key = "old_order";
String key1 = "new_order";
String jsonString = (String) stringRedisTemplate.opsForValue().get(key);
ArrayList<Map<String, String>> arrayList = (ArrayList<Map<String, String>>) JSON.parseObject(jsonString, ArrayList.class);
String jsonStrings = JSON.toJSONString(arrayList);
redisTemplate.opsForValue().set(key1, arrayList, 86400, TimeUnit.SECONDS);
log.info("存储完成");
}
}