我有 3 个虚拟机 vm1、vm2 和 redis-server 都相互连接。
vm2上的各种进程,调用vm1中的RPC。但是 RPC 的参数存储在 Redis 中。 vm2 将 key 传递给 vm1 的参数。 vm1 获取相应的值(即参数)并执行调用。大多数时候它工作得很好。
但是,有时我看到 vm1 无法获取属于 vm2 发送的键的值。片刻之后,我看到键值已添加到 redis-server。
我查看了 redis 配置文件以确定是否是某些选项导致了此问题。还搜索了一些文档。但是,我不知道为什么会这样。
有人知道为什么会发生这种情况以及解决这个问题的方法吗?
最佳答案
这里没有太多细节,所以这主要是在黑暗中刺伤。但是,我会查看在将数据设置到 redis 服务器时是否使用异步(即非阻塞)调用。通过异步调用,您可以在实际设置 redis-server 中的数据之前将 key 发送到 vm2。
至于如何确定,这取决于您使用哪些库与 Redis 交互。
关于Redis延迟键添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7699522/