当前位置: 首页 > 知识库问答 >
问题:

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

诸彬郁
2023-03-14

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

我想知道这是否可能,当我写数据时,它被写在主数据上,而读数据时,它被写到从数据上,但由于Redis中的复制本质上是异步的,所有从数据都不会更新,因此我不会得到更新值/有效值。

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

共有1个答案

郦何平
2023-03-14

这不可能.为了克服这一点,您可以从以下选项中选择:

  1. readmode配置参数设置为master
  2. 使用具有已定义syncSlaves设置的rbatch对象batchoptions.syncSlaves(2,10,timeunit.seconds)
 类似资料:
  • 主要内容:哨兵模式原理,哨兵模式应用,sentinel.conf配置项在 Redis 主从复制模式中,因为系统不具备自动恢复的功能,所以当主服务器(master)宕机后,需要手动把一台从服务器(slave)切换为主服务器。在这个过程中,不仅需要人为干预,而且还会造成一段时间内服务器处于不可用状态,同时数据安全性也得不到保障,因此主从模式的可用性较低,不适用于线上生产环境。 Redis 官方推荐一种高可用方案,也就是 Redis Sentinel 哨兵模式,它弥补了主

  • Redis 哨兵(Sentinel)是 Redis 的高可用性(Hight Availability)解决方案:由一个或多个 Sentinel 实例组成的 Sentinel 系统可以监视任意多个主服务器,以及这些主服务器的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。 Sentinel

  • 我试图在哨兵模式下将Nifi与Redis集成,如本教程所述: https://bryanbende.com/development/2017/10/09/apache-nifi-redis-integration 我的Redis集群有2个节点,运行在端口6391上,还有2个sentinel,运行在端口6392上。它似乎工作正常: PutDistributedMapCache[ID=08E39B65

  • Redis4.x是否兼容使用Sentinels运行TLS?我发现一些线程提到对TLS的支持将被添加到3.2中,但没有任何证实。

  • 每一个哨兵都可以连接到我的主人,并可以看到奴隶。它们能够独立地检测主从是否倒下。问题是哨兵们无法探测到对方。 我已经验证了每个哨兵都像预期的那样向通道发布消息,但似乎没有一个哨兵真正从其他哨兵通道接收消息。 我怎么让哨兵们见面?

  • 是Jedis这种客户端连接了哨兵后,得到了主从节点缓存到本地,发起命令之前解析命令是读or写,然后请求具体的节点? 还是sentinel统一解析了命令,再做转发?这个过程有负载均衡吗? 网上大多资料介绍读写分离,大多都只是在说主从复制的事,并没有讲解读写分离的过程。 我怎么就知道这个命令是发到从节点执行了呢?