我有个问题。假设我正在使用一个具有 3 个分片(主和从)的 Redis 集群。我才知道,如果一个master和它的slave同时出现故障,Redis Cluster就无法继续运行。之后会发生什么。
- Redis 集群是否也会从其他 2 个节点中删除所有其他键?(当它回来时)
- 我们是否需要手动重启这个集群并且我们可以以某种方式保留其他键值(在其他节点上)?
- 如果我使用 Azure Redis 缓存,它将如何表现?
提前致谢
我有个问题。假设我正在使用一个具有 3 个分片(主和从)的 Redis 集群。我才知道,如果一个master和它的slave同时出现故障,Redis Cluster就无法继续运行。之后会发生什么。
提前致谢
1. Redis 集群是否也会从其他 2 个节点中删除所有其他密钥?(当它回来时)
首先,只有操作被阻止而不是集群活动,并且没有对数据做任何事情,所以文档说
Redis 集群故障检测用于识别大多数节点何时不再可访问主节点或从节点,然后通过将从节点提升为主节点来做出响应。当从属升级不可能时,集群会进入错误状态以停止接收来自客户端的查询。
接下来关于数据是否被删除(在复制文档下)
在使用 Redis 复制的设置中,强烈建议在主服务器中打开持久性
这意味着只有当持久性被关闭off
并且主服务器对出现故障时,您才会丢失数据。当配对恢复时,您将无法恢复数据。所以保持 Redis 持久化打开。
2. 我们是否需要手动重启这个集群,我们能否以某种方式保留其他键值(在其他节点上)?
我认为上面的答案涵盖了它。
3. 如果我使用 Azure Redis 缓存,它会如何表现?
高可用性/SLA: Azure Redis 缓存保证标准/高级缓存至少有 99.9% 的时间可用。若要详细了解我们的 SLA,请参阅 Azure Redis 缓存定价。SLA 仅涵盖与缓存端点的连接。SLA 不涵盖数据丢失保护。我们建议使用高级层中的 Redis 数据持久性功能来提高数据丢失的弹性。
所以这有点让他们头疼
或者
Redis 集群:如果您想要创建大于 53 GB 的缓存或想要跨多个 Redis 节点分片数据,您可以使用高级层中提供的 Redis 集群。每个节点都由一个主/副本缓存对组成,以实现高可用性。有关详细信息,请参阅如何为高级 Azure Redis 缓存配置群集。