【问题标题】:Redis Sentinel read from a slave serverRedis Sentinel 从从服务器读取
【发布时间】:2017-05-01 19:17:11
【问题描述】:

我在生产环境中使用 redis 服务器,而对于 HA,我使用 redis sentinel。但是阅读文档,当客户端连接到哨兵时,哨兵会给客户端主redis服务器。

是所有的读写操作都在主服务器上进行,从服务器只是为了故障转移还是我们可以使用从服务器来读取数据?

【问题讨论】:

  • 您的应用程序正在使用哪个redis客户端。
  • 杰瑞迪斯。我正在将它与 spring data redis 一起使用。
  • 我觉得Spring data redis不支持。一些像 Lettuce 这样的 java 客户端支持它。由于 redis 的速度非常快,因此从 master 读取和写入大多是可以的。有时当 master 和 slave 之间有轻微的波动时​​,slave 会与 master 同步,slave 响应 get 调用会很慢。

标签: redis


【解决方案1】:

但是阅读文档,当客户端连接到哨兵时,哨兵将主redis服务器交给客户端。

不完全是,它会给你你所要求的。求主,便得主。如果你请求奴隶,它会返回奴隶列表。您使用sentinel master <name> 获取主服务器,使用sentinel slaves <name> 获取从服务器列表。

因此,如果您想对从站执行只读操作,请使用哨兵连接获取从站列表,然后打开与其中一个或多个从站的连接。棘手的部分是您希望您的代码监视和检测故障转移,以便您知道您的从站是否已被提升,并且您可以获取新的从站列表以供使用。

旁注:不要认为它是“通过哨兵连接到redis”。这与说您“通过 DNS 服务器连接到 Web 服务器”一样不准确 - sentinel 是您的查找服务,而不是代理连接。

【讨论】:

  • "旁注:不要将其视为“通过哨兵连接到 redis”。这与说您“通过 DNS 服务器连接到 Web 服务器”一样不准确 - 哨兵是您的查找服务,而不是代理连接。” - 真的帮助我理解了哨兵的真正作用。
猜你喜欢
  • 2016-09-28
  • 2016-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-28
  • 1970-01-01
  • 2015-05-26
  • 2016-06-12
相关资源
最近更新 更多