集群: 所谓的集群,就是通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定、高效的状态。
Redis有三种集群模式:
1.主从复制
主从复制模型中,有多个redis节点。其中,有且仅有一个为主节点Master。从节点Slave可以有多个
特点:(1)主节点Master可读、可写.
(2)从节点Slave只读。(read-only)
2.哨兵模式
Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务:
监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常
提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。
自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会进行选举,将其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。
3. Redis-cluster集群概念
由多个Redis服务器组成的分布式网络服务集群;集群之中有多个Master主节点,每一个主节点都可读可写;节点之间会互相通信,两两相连;Redis集群无中心节点。
故障转移:Redis集群的主节点内置了类似Redis Sentinel的节点故障检测和自动故障转移功能,当集群中的某个主节点下线时,集群中的其他在线主节点会注意到这一点,并对已下线的主节点进行故障转移。
集群分片策略: 集群将整个数据库分为16384个槽位slot,所有key-value数据都存储在这些slot中的某一个上,
集群中的每个主节点都可以处理0个至16383个槽,当16384个槽都有某个节点在负责处理时,集群进入上线状态,并开始处理客户端发送的数据命令请求。