上篇文章《Redis主从复制》中我们说到可以对Redis单节点数据进行备份实现Redis高可用,但是如果master节点宕机并不会自动做故障切换等,导致项目中更可能需要接入多数据源,编写代码实现故障切换非常麻烦,Redis考虑到这个问题提供了哨兵模式,也就是Redis Sentinel!
在redis3.0之前, 要实现集群一般是通过哨兵sentinel工具来监控master节点的状态, 如果master节点出现异常, 则会出现主从切换, 将一台slave作为master, 哨兵的配置略为复杂, 并且性能和高可用等方面表现的一般, 特别是在主从切换的那十几秒访问是中断的, 而且哨兵模式只有一个主节点对外提供服务, 无法支持很高的并发, 并且单个主节点内存也不宜设置过大, 否则会持久化文件过大, 影响数据恢复或者主从同步的效率.
小码今天去面试。面试官:给我介绍一下Redis集群,小码:啊,平时开发用的都是单机Redis,没怎么用过集群了。面试官:好的,出门右转不谢。小码内心困惑:在小公司业务量也不大,单机的 Redis 完全够用,也不会发生宕机问题啊。面试要问到 Redis 集群该怎么办呢?