【问题标题】:Does redis delete all the keys when one master and its slave fails in redis clusterredis集群中一个master和它的slave发生故障时redis会删除所有key吗
【发布时间】:2016-11-03 09:15:00
【问题描述】:

我有一个问题。假设我正在使用一个具有 3 个分片(主和从)的 Redis 集群。我才知道,如果一个master和它的slave同时出现故障,Redis Cluster就无法继续运行了。之后会发生什么。

  1. Redis 集群是否也会从其他 2 个节点中删除所有其他键? (当它回来时)
  2. 我们是否需要手动重新启动此集群,我们能否以某种方式保留其他键值(在其他节点上)?
  3. 如果我使用 Azure Redis 缓存,它的行为会如何?

提前致谢

【问题讨论】:

    标签: redis azure-redis-cache


    【解决方案1】:

    1. Redis 集群是否也会从其他 2 个节点中删除所有其他键? (当它回来时)

    首先,只有操作被阻止而不是集群活动,并且没有对数据进行任何处理,所以documentation

    Redis 集群故障检测用于识别大多数节点何时不再可访问主节点或从节点,然后通过将从节点提升为主节点来做出响应。 当无法升级从属设备时,集群会进入错误状态以停止接收来自客户端的查询。

    接下来关于数据是否被删除(在Replication文档下)

    在使用 Redis 复制的设置中,强烈建议在主服务器中打开持久性

    这意味着只有当持久性被打开off 并且主服务器对出现故障时,您才会丢失数据。当配对恢复时,您将无法恢复数据。所以请保持 Redis 持久化处于开启状态。

    2.我们是否需要手动重启这个集群,我们能否以某种方式保留其他键值(在其他节点上)?

    我认为上面的答案涵盖了它。

    3.如果我使用 Azure Redis 缓存,它将如何表现?

    来自Azure Redis Cache FAQ

    高可用性/SLA:Azure Redis 缓存保证标准/高级缓存至少在 99.9% 的时间可用。若要详细了解我们的 SLA,请参阅 Azure Redis 缓存定价。 SLA 仅涵盖与缓存端点的连接。 SLA 不涵盖数据丢失保护。 我们建议在高级层中使用 Redis 数据持久性功能来提高数据丢失的弹性。

    所以这有点让他们头疼

    Redis 集群:如果您想要创建大于 53 GB 的缓存或想要跨多个 Redis 节点分片数据,您可以使用高级层中提供的 Redis 集群。每个节点都由一个主/副本缓存对组成,以实现高可用性。有关详细信息,请参阅如何为高级 Azure Redis 缓存配置群集。

    【讨论】:

    • "这意味着只有关闭持久化并且主服务器对出现故障才会丢失数据",您的意思是数据只会从主从对丢失然后去关闭并返回或从其他节点返回(假设持久性已关闭)
    • 只有主对
    猜你喜欢
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    • 2020-06-16
    • 1970-01-01
    • 2015-08-15
    • 2016-03-19
    • 2013-09-22
    • 1970-01-01
    相关资源
    最近更新 更多