redis如何解决高可用问题?

82 阅读2分钟

redis如何解决高可用问题?

使用redis集群。

目前解决redis高可用的最佳实践,就是使用redis集群。

架构

一般就是几主几从,就够用了。

比如,3主3从,或者5主5从。

每个主节点,一般只需要一个从节点就够了。

image.png


为什么一般情况下,几主几从就够用了?

因为大部分公司都不是大厂,没有那么大的数据量,单个集群没有必要搞那么大。

中小企业,如果单个集群不够用,就搭建多个小集群,比如按业务或者按不同部门。

单个主节点挂了

从节点会自动晋升为新的主节点。

实现原理是,剩下的主节点会从从节点里面选择一个作为新的主节点。一般情况下,每个主节点就一个从节点,所以直接选择那个唯一的从节点晋升为主节点即可。


影响范围?

只影响挂的那一瞬间。自动晋升完成之后,就不会影响。


那旧的主节点怎么处理?

旧的主节点后面如果恢复了,就自动降级为新主节点的从节点。

也就是说,主节点和从节点相当于换了一下角色而已。


如果是从节点挂了呢?

基本上没有影响。因为从节点一般只是作为备胎节点,既不写也不读。

整个集群挂了

基本上不会发生。


万一发生怎么办?解决方法?

可以搞一套备胎集群。如果全部挂了,运维手动把ip指向备胎集群。

这样的话,应用配置redis的ip就不需要修改,也不需要重新发布。ip没变,应用就会自动重连到新的集群。

影响范围?只影响运维手动切换集群的那一小段时间。

参考

www.bilibili.com/video/BV1rA…