gpt4 book ai didi

java - 从不同的应用程序读取 Redis 中的数据

转载 作者:可可西里 更新时间:2023-11-01 11:24:15 25 4
gpt4 key购买 nike

我们正在使用 serviceA 从数据库中提取数据并将其放入 redis(我们正在使用 Spring data/Jedis 和方法 saveAll)。

还有一个serviceB需要从同一个redis实例中获取所有对象。

serviceA 的对象结构与serviceB 完全相同。我们遇到问题,因为Servicea的工作正常,但是服务b用spring数据提供的方法findall()提取所有数据,但它们都是无效的。

注意:我们做了一个测试,从serviceB加载了所有的数据,所以我们得到了所有的对象,没有任何问题。我可以从 redis 上的两个哈希中看到的唯一区别是当我们从 serviceA 加载数据时自动生成的字段 _class。

你能给我一个人吗?

最佳答案

确保在 serviceA 之间序列化 key 的方式一致和 serviceB .对我来说,这听起来像 serviceA正在为给定的序列化 key 写入数据,然后是 serviceB尝试为不同的序列化 key 获取数据。例如,如果您在“serviceA”和“serviceB”中都使用 Jackson,请确保以相同的方式配置它。

Redis 本质上是一个分布式 Map<String, String> ,所以如果serviceA 有差异序列化数据以及如何 serviceB序列化数据(例如,其中一个将类名存储在序列化对象中,而另一个不存储它),您最终会得到不同的 String相同 Java 键对象的键(并且读取数据的服务将得到 null 作为对 findAll 的响应,因为 Redis 中没有存储它请求的键)。

关于java - 从不同的应用程序读取 Redis 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52563880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com