如何从redis中读取对象
今天写项目,遇到一个问题:从kafka实时监听数据,存入到redis中,然后在另一个程序中每隔一分钟读取redis中存储的数据。
存进redis的直接就存入的是一个实体类,等到从redis中取出时,springboot项目报错:不能变成实体(使用ObjectMapper)。百度了一下,发现一个方法比较好用。
1.当存入redis时,用 JSON.toJSONString(实体对象,SerializerFeature.WriteNullStringAsEmpty)
把实体类变成JSONString类型,后面是对实体中空字符串进行处理。
2.当从redis中取数据时,Object object=redisTemplate.opsForList().index(key,0L) 得到redis中key对应的值
JSONObject jsonObject=JSON.parseObject(object.toString()) 得到jsonObject
Entity entity=JSON.toJavaObject(jsonObject,Entity.class) 得到我们想要的实体类对象
通过以上两步,可以从redis中取出我们想要的实体类对象进行操作。这个方法已经测试过,没有问题。可能还有其他简单的方法,但是目前是用这个方法。