使用 Jackson ObjectMapper 将数据存储到 Redis 之前进行序列化,然后在检索数据时进行反序列化。
使用RedisJSON模块直接存储和查询JSON数据,无需序列化和反序列化。
两者之间的区别在于,使用
RedisJSON module
允许在 Redis 服务器上处理处理,而使用 Jackson ObjectMapper
则需要 应用程序 来处理处理。
考虑到性能、负载、瓶颈等因素,我很好奇哪种方法更适合不同的场景。
这是一个有点宽泛的问题,但让我尝试给出一个非常简短的总结,重点关注主要区别。当然,根据用例,这些考虑因素可能重要也可能不重要。
使用哈希作为支持的实现
使用RedisJSON模块实现
所有后者最终都会带来性能改进,因为它们既会减少通过线路发送的数据量,又会减少在某些情况下解析数据的需要。在这两种情况下,请考虑增加存储在数组中的数字:
情况 1 - 需要获取整个 JSON 文本(如果它大于相关数组 - 包括所有不相关的数据);那么必须应用该路径才能到达数组 n 问题;那么该值需要反序列化,因此递增;然后需要将数据序列化回来并返回到服务器;
情况 2 - 需要向服务器发送一条命令,指示要增加的元素的路径