redis如何解决高可用问题?
使用redis集群。
目前解决redis高可用的最佳实践,就是使用redis集群。
架构
一般就是几主几从,就够用了。
比如,3主3从,或者5主5从。
每个主节点,一般只需要一个从节点就够了。
单个主节点挂了
从节点会自动晋升为新的主节点。
注:实现原理是,剩下的主节点会从从节点里面选择一个作为新的主节点。一般情况下,每个主节点就一个从节点,所以直接选择那个唯一的从节点晋升为主节点即可。
影响范围?
只影响挂的那一瞬间。自动晋升完成之后,就不会影响。
那旧的主节点怎么处理?
旧的主节点后面如果恢复了,就自动降级为新主节点的从节点。
也就是说,主节点和从节点相当于换了一下角色而已。
如果是从节点挂了呢?
基本上没有影响。因为从节点一般只是作为备胎节点,既不写也不读。
整个集群挂了
基本上不会发生。
万一发生怎么办?解决方法?
可以搞一套备胎集群。如果全部挂了,运维手动把ip指向备胎集群。
这样的话,应用配置redis的ip就不需要修改,也不需要重新发布。ip没变,应用就会自动重连到新的集群。
影响范围?只影响运维手动切换集群的那一小段时间。
参考