gpt4 book ai didi

java - 从 Redis 检索数据时出现意外结果

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

我们使用 Redis 来存储我们的数据(从多个服务器获取)。该数据存储在一个 key 上,该 key 是根据搜索到的参数准备的,并根据我们为数据提供的准备好的 key 。现在这在 90% 的时间里都可以正常工作(返回预期数据),但有时它只返回 NO RESULT 对于那个特定的键,尽管 Redis 中存在针对那个键的数据(我通过运行 keys * 命令验证了它).我没有在我的日志中观察到任何错误或异常,所以我完全不知道是什么导致了这种异常行为。

由于这种情况非常不稳定,我无法解决这个问题。知道可能导致 Redis 以这种方式运行的问题是什么吗?

PS:我根据给定的键异步更新数据,以便用户下次使用相同的键查询时获得最新数据。

最佳答案

使用您问题中的可用数据,它可能是以下之一:

  1. 如果您正在为您的 redis 服务器使用主从设置(在主服务器上写入,在从服务器上读取所有内容),主从之间的网络/通信问题可能是关于一致性的真正问题。无法从主服务器获取更新的从服务器将返回不稳定的结果(主 Redis 节点会立即回复肯定答复,即使更改尚未复制到其从服务器)。如果是这种情况,我建议尝试使用 WAIT 命令。有关详细信息,请参阅官方 Redis 文档。

  2. 一个更常见的错误(甚至在我公司的设置中)是不检查是否有“恶意”客户端连接和改变数据。如果这些客户端修改数据的速度比我们的眼睛快,那么仅使用 KEYS 也无济于事。尝试隔离另一组机器上的设置,看看问题是否仍然存在。您也可以用虚拟机一个一个地替换客户端,这样您的设置就不会那么复杂并且更容易调试。

  3. 您这边可能有逻辑错误。您可能想在此处编辑您的问题或评论您对上述键执行的确切命令。这将真正有助于调试。您可以通过 Redis 或其他方法进行一些同步,以避免竞争条件或其他类似问题。

请更详细地描述您的问题,以便我们更好地帮助您。实际命令、客户端和服务器设置、使用的库以及 Redis 版本将有很大帮助。

关于java - 从 Redis 检索数据时出现意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32519055/

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