我读过https://github.com/redisson/redisson
我发现有几个
redis复制设置(包括支持aws elasticache和azure redis缓存)
redis群集设置(包括支持aws elasticache群集和azure redis缓存)
redis sentinel设置
只有主从的redis
我不是集群方面的Maven,我不明白这些设置之间的区别。
你能解释一下区别吗?
我读过https://github.com/redisson/redisson
我发现有几个
redis复制设置(包括支持aws elasticache和azure redis缓存)
redis群集设置(包括支持aws elasticache群集和azure redis缓存)
redis sentinel设置
只有主从的redis
我不是集群方面的Maven,我不明白这些设置之间的区别。
你能解释一下区别吗?
1条答案
按热度按时间raogr8fs1#
免责声明我是aws员工。
我不知道怎么做
Redis Replicated Setup
与redis主从模式不同。可能是指跨区域复制?在任何情况下,我都可以尝试解释我所知道的设置:
Redis with Master with Slave only
-是一个单独的分片设置,您可以在其中创建一个主副本和一个或多个辅助(从属)副本(希望pc警察不会逮捕我)。此设置用于提高内存存储的持久性。不建议使用辅助库进行读取,因为这样的设置有最终的一致性保证,而且副本读取可能会过时(取决于复制延迟)。Redis Cluster setup
-云支持的设置提供了诸如aws elasticache等。在此设置中,您的工作负载可以水平分布在多个分片上,每个分片可能有自己的辅助副本。您的客户端库必须支持此设置,因为它需要在客户端级别维护到多个节点的多个连接。此外,为了有效地使用集群模式,还需要遵循一些局部性规则:钥匙
foo{<shard>}bar
符号将根据花括号中存储的内容路由到它们的碎片。你不能使用
mset
,mget
以及其他跨碎片的多键命令。如果这些命令的键包含相同的内容,则仍然可以使用这些命令{shard}
部分。redis还公开了一些额外的集群模式管理命令,但它们通常被云提供商劫持并对用户隐藏,因为云提供商使用它们来管理redis集群本身。
redis集群能够在碎片之间迁移部分工作负载。然而,它仍有义务保持有关这方面的正确性
{shard}
符号。因为您的客户机库负责从特定的shard获取数据,所以当shard可能将数据重定向到另一个节点时,它必须处理“moved”响应。Redis Sentinel setup
-使用为redis集群提供服务发现功能的附加服务器。不严格要求,我相信在用户中不太受欢迎。它是关于每个节点的健康状况和状态的唯一真实来源。它提供监视、管理和服务发现功能来管理redis集群。许多redis客户端库提供了连接到redis sentinel节点的选项,以实现自动服务发现和无缝的故障转移流。这种设置不那么流行的原因之一是,像aws elasticache这样的云公司提供这种现成的服务。