redis - 集群篇

285 阅读4分钟

redis集群类型

  • 单节点
  • 主从模式
  • sentinel模式 基于主从复制
  • cluster哨兵模式:监控每一台机器,如果有宕机则选择一台

一些名词区分:

  • 分布式:多台机器共同完成一个或多个服务 集群:一个任务放到多台机器 上完成
  • 集群:有可能不需要均衡(mysql) ,可能只需要主从同步:主机的数据被分到从服务器
  • 负载均衡:作为网络协议做的一层转发 从而实现均衡

主从模式

什么是主从模式?

一个 Master 可以有多个 Slaves,也就是一个主机和多个从机。

在默认配置下,master 节点可以进行读和写,slave 节点只能进行读操作,写操作是被禁止的。

为什么slave不能够进行写操作?

  1. 写入的数据不会被同步到其他节点
  2. 当 master 节点修改同一条数据后,slave 节点的数据会被覆盖掉。

master节点 或 slave节点宕机会出现什么情况?

  1. slave 节点宕机不影响其他 slave 节点的读和 master 节点的读和写,重新启动后会将数 据从 master 节点同步过来。

  2. master 节点宕机不影响 slave 节点的读,redis 将不再提供写服务,直到 master 节点启动后 redis 将重新对外提供写服务。

注意:master 节点宕机以后,不会 slave 节点重新选一个 master

如果 master 节点设置密码时

  • 客户端访问 master 需要密码

  • 启动 slave 需要密码

  • 客户端访问 slave 不需要密码

为什么使用主从模式?

  1. 备份数据

当一个节点损坏(指不可恢复的硬件损坏)时方便恢复。

  1. 负载均衡

所有客户端都访问一个节点会影响 redis的工作效率,使用主从模式后redis查询操作查询从节点来完成。

对主从模式的改进

主从模式的缺点:

master 节点宕机后,redis 就不能对外提供写服务 slave 不能够成为 master ,只能等待 master 节点重新启动。

对生产环境来说,写服务是一刻都不能停止服务的。因此有sentinel模式

Sentinel模式

Sentinel模式是 基于主从模式。

Sentinel 的功能

Sentinel 的主要功能包括主节点存活检测、主从运行情况检测、自动故障转移、主从切换

Sentinel 系统可以用来管理多个redis服务器,该系统可以执行以下四个任务:

  • 监控

Sentinel 会不断的检查主服务器和从服务器是否正常运行。

  • 通知

当被监控的某个 redis 服务器出现问题,Sentinel 通过 API脚本向管理员或者其他的应用程序发送通知。

  • 自动故障转移

当主节点不能正常工作时,Sentinel会开始一次自动的故障转移操作,它会将与失效主节点,是主从关系的其中一个从节点升级为新的主节点,并且将其他的从节点指向新的主节点。

  • 配置提供者

在 Sentinel 模式下,客户端应用在初始化时连接的是 Sentinel 节点集合,从中获取主节点的信息。

Sentinel 如何工作?

Sentinel 系统监控 master 和 slaves 节点服务器。如果被监视的 master 服务器宕机进入下线状态时,自动将该 master 下的某个slave 服务器升级为新的 master,由新的 master 继续不停的处理请求。**当原来的 master 上线后将会变成新的 slave 节点。

Sentinel 模式的缺点?

当数据量过大到一台服务器存放不下的情况时,需要对存储的数据进行分片,将数据存储到多个 Redis 实例中,这时 Sentinel 模式就不能够满足情况,需要用到集群模式了。

cluster 模式

cluster 是什么?

redis cluster 是 Redis 的分布式解决方案,有效地解决了 redis 分布式 方面的需求。

为什么选择 cluster ?

cluster 的出现是为了解决单机 Redis 容量有限的问题,将 Redis 的数据根据一定的规则分配到多台机器。也就是将需要保存的数据进行切割,分别保存到其他机器上。

cluster 可以说是 sentinel 和主从模式的结合体,通过 cluster 可以实现主从和 master 重选功能。

什么时候选择 cluster?

Redis 的数据是根据一定规则分配到 cluster 的不同机器的,当数据量过大时,可以新增机器进行扩容。因此在数据量巨大的缓存要求下使用cluster 模式,数据量不是很大时使用 sentinel 即可。

更详细的介绍

blog.csdn.net/qq2430/arti…