Redis集群(分布式)
概念
redis集群:
将多台服务器集中在一起,实现同一业务。 数据库集群和应用集群和功能集群
分布式:
将不同的业务分布在不同的地方,web应用和数据库服务是分开的
集群特性
- 可扩展性:集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能。动态添加服务器
- 高可用性:集群通过服务实体冗余使客户端免于轻易遇到out of service的警告。在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出错的服务实体恢复到另一个服务实体的功能增强了应用的可用性当访问的服务器挂了时,集群要有能力找可以正常使用额服务器继续提供服务器。
两大作用
负载均衡--负载均衡能把任务比较均衡地分布到集群环境下的计算和网络资源。
错误恢复--由于某种原因,执行某个任务的资源出现故障,另一服务实体中执行同一任务的资源接着完成任务。这种由于一个实体中的资源不能工作,另一个实体中的资源透明的继续完成任务的过程叫错误恢复。
当访问的服务器挂了时,集群要有能力找可以正常使用额服务器继续提供服务器。
分布式和集群相同点和不同点?
相同点:
都是处理高并发,而且都需要多台服务器协同.一把在一个系统中同时存在分布式和集群.
不同点:
分布式中不同服务器处理是不同业务.而集群处理时同一业务.
Redis集群作用
防止单点故障
处理高并发-太多请求一台服务器搞不定
处理大量数据-太多内存数据一台服务器搞不定
三种模式
主从复制
主从复制的作用
数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
故障恢复:当主节点出现问题时可以由从节点提供服务实现快速的故障恢复;实际上是一种服务的冗余
负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
读写分离:可以用于实现读写分离,主库写、从库读,读写分离不仅可以提高服务器的负载能力,同时可根据需求的变化,改变从库的数量。
高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。
支持主从复制,主机会自动将数据同步到从机,可以进行读写分离,减轻读压力
哨兵模式
哨兵模式是基于主从模式的,监控主服务器和从服务器是否正常运行
主服务器出现故障时(当多个哨兵判断其出故障)自动将从服务器转换为主服务器。
Redis-Cluster集群(Cluster3.0开始的)
什么是Redis-Cluster
Redis-Cluster采用无中心结构,集群中的每个节点都是平等的关系,都是对等的,
每个节点都保存各自的数据和整个集群的状态。每个节点都和其他所有节点连接
,而且这些连接保持活跃,这样就保证了我们只需要连接集群中的任意一个节点,就可以获取到其他节点的数据
。采用无中心结构,每个节点