【问题标题】:What is the difference between:Redis Replicated setup, Redis Cluster setup Redis Sentinel setup and Redis with Master with Slave only?[REDISSON]有什么区别:Redis Replicated setup, Redis Cluster setup Redis Sentinel setup and Redis with Master with Slave only?[REDISSON]
【发布时间】:2020-09-29 08:21:24
【问题描述】:

我读过https://github.com/redisson/redisson

我发现有好几个

  • Redis 复制设置(包括对 AWS ElastiCache 和 Azure Redis 缓存的支持)
  • Redis 集群设置(包括对 AWS ElastiCache 集群和 Azure Redis 缓存的支持)
  • Redis Sentinel 设置
  • 仅具有 Master 和 Slave 的 Redis

我不是集群方面的专家,我不了解这些设置之间的区别。

你能详细解释一下区别吗?

【问题讨论】:

    标签: redis node-redis redis-cluster redisson


    【解决方案1】:

    免责声明我是 AWS 员工。

    不知道Redis Replicated Setup和主从模式下的Redis有什么不同。也许他们的意思是跨区域复制?

    无论如何,我都可以尝试解释我所知道的设置:

    1. Redis with Master with Slave only - 是一个单一的分片设置,您可以在其中创建一个主副本以及一个或多个辅助(从)副本(希望 PC 警察不会逮捕我)。此设置用于提高内存存储的持久性。不建议使用您的辅助设备进行读取,因为这样的设置具有最终一致性保证,并且您的副本读取可能是陈旧的(取决于复制延迟)。
    2. Redis Cluster setup - 云提供的设置,例如 AWS Elasticache。在此设置中,您的工作负载可以水平分布在多个分片上,并且每个分片可能有自己的辅助副本。您的客户端库必须支持此设置,因为它需要在客户端级别维护与多个节点的多个连接。此外,为了有效地使用集群模式,您需要遵循一些局部性规则:
      • 带有foo{<shard>}bar 符号的键将根据大括号内存储的内容路由到其分片。
      • 不能跨分片使用mset、mget等多键命令。如果它们的键包含相同的 {shard} 部分,您仍然可以使用这些命令。
      • Redis 公开了其他集群模式管理命令,但它们通常被云提供商劫持和隐藏,因为云提供商使用它们来管理自己的 Redis 集群。
      • Redis 集群能够在分片之间迁移部分工作负载。但是,它仍然有义务保持{shard} 表示法的正确性。由于您的客户端库负责从特定分片获取数据,因此当分片可能将其重定向到另一个节点时,它必须处理“移动”响应。
    3. Redis Sentinel setup - 使用为 Redis 集群提供 service discovery functionality 的附加服务器。不是严格要求的,我相信在用户中不太受欢迎。它作为关于每个节点的健康和状态的单一事实来源。它提供监控、管理和服务发现功能来管理您的 Redis 集群。许多 Redis 客户端库提供连接到 Redis 哨兵节点的选项,以实现自动服务发现和无缝故障转移流程。这种设置不太受欢迎的原因之一是 AWS Elasticache 等云公司提供开箱即用的服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      • 2016-09-28
      • 2021-12-28
      • 2013-10-02
      • 2017-08-06
      • 1970-01-01
      相关资源
      最近更新 更多