AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 815764
Accepted
Mat
Mat
Asked: 2016-11-19 08:13:30 +0800 CST2016-11-19 08:13:30 +0800 CST 2016-11-19 08:13:30 +0800 CST

Redis 集群:最少 3 个主节点?

  • 772

我正在评估 Redis 3 的集群功能(我目前使用的是独立的 Redis 2),所以我正在阅读http://redis.io/topics/cluster-tutorial上的信息。

在本文档中,我阅读了一个非常重要的信息:

请注意,按预期工作的最小集群需要包含至少三个主节点。对于您的第一次测试,强烈建议您启动一个包含三个主节点和三个从节点的六节点集群。

这是真的吗?在我看来,如果我使用分片功能(数据在节点之间共享),这是正确的,但如果我不需要它并且我很乐意只在一个节点上拥有数据怎么办?

我基本上需要一个master和两个slave(所以如果一个节点出现故障,集群将是活动的),我可以在生产环境中进行此配置吗?如果是,有哪些禁忌症?

非常感谢您的帮助!

cluster redis
  • 4 4 个回答
  • 32581 Views

4 个回答

  • Voted
  1. Dominic Scheirlinck
    2017-08-14T18:54:15+08:002017-08-14T18:54:15+08:00

    这是真的吗?

    不,这不是真的。这是一个强烈的建议(正如您可以从“按预期工作”的语言中看出的那样;如果您不希望您的数据是持久的,并且您希望它会消失等等 - 您可以设置一个单节点集群。为什么你会而不是仅仅关闭集群模式......这取决于你。)

    所以,是的,您可以设置一个单节点集群,即使不建议这样做(由于其他答案和文档中提到的所有原因。)redis 集群代码中没有什么可以阻止您,除了检查 redis-trib.rb 帮助程序,以劝阻天真的用户。

    要绕过该检查并设置一个单节点集群(如果您确定这是您想要的 - 请记住,它几乎肯定不是),您可以手动将分片分配给您的节点CLUSTER ADDSLOTS 1 2 3 ...(等,例如所有 16384 个分片)。或者使用没有 3 节点安全检查 ( redis-trib.py create 127.0.0.1:6379) 的 Python 版本的 redis-trib。

    • 7
  2. Best Answer
    Itamar Haber
    2016-11-19T12:10:56+08:002016-11-19T12:10:56+08:00

    这是真的吗?

    是的,这就是它在文档中的原因:)

    在我看来,如果我使用分片功能(数据在节点之间共享),这是正确的,但如果我不需要它并且我很乐意只在一个节点上拥有数据怎么办?

    在集群模式下使用 Redis 意味着分片。如果您对单个实例感到满意,请不要使用集群。否则,请参阅集群规范本身以了解有关基本假设的更多信息。具体来说,在最小集群配置的情况下,您需要 3 个 master 来确保集群在分区情况下的可用性,否则您将无法就多数达成一致。

    • 6
  3. Daniel Carrasco
    2018-06-23T00:48:58+08:002018-06-23T00:48:58+08:00

    我知道这个问题很老,但如果有人需要类似的设置,可以使用主从配置而不是集群。你需要:

    • 2 Redis 服务器至少
    • 3 Redis Sentinel 监控健康状况并避免脑裂
    • 一种检查谁是主人的方法(我在客户端服务器上使用 HAProxy 和一些检查命令)

    如果你可以让它足够聪明,你可以只写到主节点并从所有节点读取。我在一些 Wordpress 网站上使用此设置,但插件不是用来检测谁是主节点,所以我只是使用 HAProxy 来检测主节点并将所有流量发送到该节点。如果主节点死亡,则从节点担任主节点(redis-sentinel 管理该角色)。HAProxy 检测到 master 已更改,然后更改接收所有流量的节点。

    抱歉不要发布代码和示例,但现在我不能这样做。

    问候!!

    • 5
  4. Ken Cheung
    2017-12-18T20:29:50+08:002017-12-18T20:29:50+08:00

    如果您依赖 Redis 进行故障转移,则至少需要三个主节点和三个从节点(最少 3 台服务器,每个服务器运行一个主节点和一个从节点)。

    如果使用外部集群软件,比如heartbeat,可以在集群模式下设置2个节点,1个master,1个slave,将16384个slot全部分配给master,在master为“CLUSTER FAILOVER TAKEOVER”时使用failover脚本进行“CLUSTER FAILOVER TAKEOVER”下。当然你也可以和redis一起设置一个服务IP来进行故障转移。这种额外的安排也允许您使用非集群 redis 客户端。

    生产运行了一年,故障转移了几次(机器重启以更新内核),到目前为止,运营团队没有报告任何问题。

    • 4

相关问题

  • 是否有可能从多台计算机中创建一台速度更快的计算机?

  • LVS 集群帮助

  • 如何从 Windows 2008 故障转移群集中删除“额外”(不需要的)网络?

  • 如何在低负载期间关闭(关闭)集群节点?

  • 使用 Nagios 监视 Novell 集群服务

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve