当 Redis 处于哨兵模式时,是否有可能在复制之前发生读取?

Is it possible read happens before replication when Redis is in sentinel mode?

我是 运行 Redis 的哨兵模式,我在 Redis 中写入数据时发生了很多次,但在读取相同的键时我没有得到预期的值。

我想知道是否有可能当我写入数据时,它是写在 Master 上的,而当读取它时,它会转到 slave 但由于 Redis 中的 Replication 本质上是异步的,所有 slaves 都不会更新,因此我不'获取更新值/有效值。

我正在使用 redisson 客户端和三台服务器进行哨兵配置。

这不可能。为了克服这个问题,您可以选择以下选项:

  1. readMode 配置参数设置为 MASTER
  2. 使用具有定义的 syncSlaves 设置的 RBatch 对象 BatchOptions.syncSlaves(2, 10, TimeUnit.SECONDS)