我已经读过https://github.com/redisson/redisson
我发现有几个
我不是集群专家,也不了解这些设置之间的区别。
您能如实解释这些差异吗?
答案 0 :(得分:2)
免责声明我是AWS员工。
我不知道Redis Replicated Setup
与主从模式下的Redis有何不同。也许它们意味着跨区域复制?
无论如何,我都可以尝试解释我所知道的设置:
Redis with Master with Slave only
-是一个单分片设置,您可以在其中创建一个主副本以及一个或多个辅助(从属)副本(希望PC警察不会逮捕我)。此设置用于提高内存存储的耐用性。不建议使用辅助副本进行读取,因为这样的设置最终会保证一致性,并且副本读取可能是过时的(取决于复制滞后时间)。Redis Cluster setup
-云提供的设置支持,例如AWS Elasticache。在此设置中,您的工作负载可以水平分布在多个分片上,并且每个分片可以具有自己的辅助副本。您的客户端库必须支持此设置,因为它需要在客户端级别维护与多个节点的多个连接。此外,为了有效地使用集群模式,您需要遵循一些本地性规则:
foo{<shard>}bar
表示法的键将根据大括号内存储的内容被路由到其分片。mset
,mget
和其他多键命令。如果它们的键包含相同的{shard}
部分,您仍然可以使用这些命令。{shard}
表示法的正确性。由于您的客户端库负责从特定的分片中获取数据,因此当分片将其重定向到另一个节点时,它必须处理“移动”响应。Redis Sentinel setup
-使用为Redis群集提供service discovery functionality的附加服务器。没有严格要求,我相信它在用户中不太受欢迎。它充当有关每个节点的运行状况和状态的唯一事实来源。它提供了监视,管理和服务发现功能,用于管理Redis集群。许多Redis客户端库提供了连接到Redis标记节点的选项,以实现自动服务发现和无缝的故障转移流程。此设置不那么受欢迎的原因之一是因为像AWS Elasticache这样的云公司提供了开箱即用的服务。