【问题标题】:Synchronizing between Redis MasterRedis Master 之间的同步
【发布时间】:2015-10-30 02:04:56
【问题描述】:

我有 3 个 redis 服务器,每个服务器都在不同的机器上。是否可以在 3 个服务器之间同步,即每个服务器具有相同的数据。

我想过使用主从模型,即所有写入都转到作为主服务器的单个服务器 (A)。其他 2 个服务器(B,C)是您可以从中读取数据的从站。但问题是,当主机启动并且您尝试从从机读取时,您会被重定向到主机 - 我希望读取由从机提供服务。

如何实现此要求?

回答以下问题:-

正如您在下面看到的,10.200.37.106:7002 是主 10.200.37.172:7001 的从属。

集群节点

e79124fbedc01f8a7e939cfc97298ed8a915df5f 10.200.37.178:7001 从机 1836dd7a25773e6344c49a1219e70835b18ef29a 0 1438981146403 11 已连接

2761f9d7a37e2cb749f7e0a7232057cb4df8091c 10.200.37.172:7002 从机 e556a56c3fda6cd95dcd63ef53711cf25b29e5a5 0 1438981146904 6 个已连接

e556a56c3fda6cd95dcd63ef53711cf25b29e5a5 10.200.37.106:7001 主 - 0 1438981145902 1 已连接 0-5460

3dad620d271dc35ad1e156a4afdd238f5f1da60b 10.200.37.172:7001 我自己,master - 0 0 13 已连接 5461-10922

1836dd7a25773e6344c49a1219e70835b18ef29a 10.200.37.178:7002 主 - 0 1438981144898 11 已连接 10923-16383

bcc1f12de5d5924772519da3539f4bbdb331f5be 10.200.37.106:7002 从机3dad620d271dc35ad1e156a4afdd238f5f1da60b 0 1438981146904 13 已连接

但奴隶仍然将我重定向到主人。

奴隶

[jai@SparkDev ~]$ redis-cli -p 7002 -h 10.200.37.106

10.200.37.106:7002> 获取名称

(错误)已移动 5798 10.200.37.172:7001

10.200.37.106:7002> 退出

大师

[jai@SparkDev ~]$ redis-cli -p 7001 -h 10.200.37.172

10.200.37.172:7001> 获取名称

“贾伊”

【问题讨论】:

  • “但问题是,当主服务器启动并且您尝试从从服务器读取时,您会重新定向到主服务器”-您为什么会这样认为? Redis 的主从复制不是这样工作的

标签: redis


【解决方案1】:

引用http://redis.io/topics/cluster-spec#scaling-reads-using-slave-nodes:

通常,从节点会将客户端重定向到给定命令中涉及的哈希槽的权威主节点,但是客户端可以使用从节点来使用READONLY 命令扩展读取。

READONLY 告诉 Redis 集群从属节点客户端可以读取可能陈旧的数据并且对运行写入查询不感兴趣。

【讨论】:

猜你喜欢
  • 2013-09-22
  • 1970-01-01
  • 2021-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-25
  • 2020-07-12
  • 1970-01-01
相关资源
最近更新 更多