redis三种集群方案

哨兵模式

在一般的redis主从结构中,若master不可用后,需要运维手动切换slave为新的master,同时还需要通知客户端切换新的链接地址,故障处理太复杂。
哨兵是一个单独的进程,用于监听redis集群中的master和slave,可多实例集群化部署。当哨兵发下master不用时,主动提升其slave为master,保证服务的可用性。
参考:https://blog.csdn.net/niugang0920/article/details/97141175?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161611874016780255287986%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=161611874016780255287986&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2

代理模式

通过一层代理将客户端请求分发到不同的redis实例上,实现redis集群的负载均衡。一般需要对客户端请求的key进行预分片,及通过预分片确定key所属的redis实例。同时,代理模式方便集群实例的统一配置管理、增删节点等操作,这些变更对于客户端都是透明的,因为客户端只需连接到代理即可。代理节点本身也可以集群化部署,实现高可用。缺点就是增加了层代理,请求相应有所降低。
参考:https://blog.csdn.net/nawenqiang/article/details/84990508

redis cluster

redis cluster是redis官方提出集群方案,通过各节点互联互ping实现集群状态的维护。客户的key通过哈希被分为16384个槽,各个槽由集群内的各实例均分。客户端无需中间代理,连接到任何一个节点均可获取redis服务,因为每个节点和其他所有节点都是互联的。redis cluster的这种去中心化分布式方案是比较理想的一种,但是也伴随着运维困难、命令兼容等一系列问题。
参考:https://blog.csdn.net/truelove12358/article/details/79612954?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161612132016780262549777%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=161612132016780262549777&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2

你可能感兴趣的:(redis三种集群方案)