什么是redis集群?
单实例:
1、主从复制:一个主,一个或多个从,从节点从主节点复制数据,可以实现读写分离,主节点做写,从节点做读。
主从节点的优缺点:
优点:可以实现读写分离,主节点的数据会自动复制到从节点,分担主节点的压力
缺点:当主节点宕机了,会导致部分数据未同步。也不具备容错和回复功能,无论主节
点或者从节点宕机都需要等重启之后才能使用
2、哨兵模式:哨兵模式也是一种主从,只不过增加了哨兵的功能,用于监控主节点的状态,当主节点宕机之后会进行投票重新选出主节点。哨兵主要用于管理redis服务器,主要有三个任务:监控、提醒以及故障转移。
哨兵执行原理:每个哨兵会向其他哨兵、master、slave定时发送消息,确保对方还活着,如果在配置的时间内未回复,则暂时认为对方已挂,如果哨兵群中大多数都报告某一个master没响应,系统才认为该master死亡,通过vote算法从剩下的slave节点中选一个提升为master,自动修改相关配置。
哨兵模式故障迁移流程:从主服务器的从服务器中选定一个从服务器作为新的主服务
器。
单实例会出现的一些问题?
1、写并发
Redis单实例读写分离可以解决读操作的负载均衡,但对于写操作,仍然是全部落在了master节点上面,在海量数据高并发场景,一个节点写数据容易出现瓶颈,造成master节点的压力上升。
2、海量数据的存储压力
单实例Redis本质上只有一台Master作为存储,如果面对海量数据的存储,一台Redis的服务器就应付不过来了,而且数据量太大意味着持久化成本高,严重时可能会阻塞服务器,造成服务请求成功率下降,降低服务的稳定性。
多实例:
Redis3.0加入了Redis的集群模式,实现了数据的分布式存储,对数据进行分片,将不同的数据存储在不同的master节点上面,从而解决了海量数据的存储问题。
Redis集群可以看成多个主从架构组合起来的,每一个主从架构可以看成一个节点(其中,只有master节点具有处理请求的能力,slave节点主要是用于节点的高可用)