Redis的主从复制、哨兵机制、集群

一、主从复制

1、定义

主:master 以写为主 当master数据变化的时候
从:slave 以读为主 自动将新的数据异步同步到其他slave数据库

2、作用

读写分离、容灾恢复、数据备份、水平扩容支撑高并发。

3、使用方式——配从不配主

权限配置:master如果配置了requirepass参数,需要密码登录,那么slave就要配置masterauth来设置校验密码,否则master会拒绝slave的访问请求。

4、基本操作命令

info replication——可以查看复制节点的主从关系和配置信息。

replicaof masterip masterport  写入redis.conf中、即 replicaof 192.168.88.100  6379

 slaveof masterip masterport 写入redis.conf中,和master建立连接

slaveof no one 是当前数据库禁止和其他数据库的同步,转成主数据库。

5、复制的缺点

由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。 而且,情况下不会再slave节点中自动重选一个master,导致master挂机。

二、哨兵机制

1、定义

在集群中再引入一个节点,该节点充当 Sentinel 哨兵,用于监视 Master 的运行状态,并在Master 宕机后自动指定一个 Slave 作为新的 Master。 整个过程无需人工参与,完全由哨兵自动完成。

2、哨兵的作用

①监控redis运行状态、②当master宕机,自动将slave切换成新的master、③哨兵能将故障转移的结果发送给客户端、④客户端通过连接哨兵获得redis服务的主节点地址。

 3、哨兵的工作流程

当一个主从配置的master失效之后,sentinel可以选举出一个新的master来自动接替原来的master的工作,主从配置中的其他redis服务器自动指向新的master同步数据。

4、简单命令

redis-sentinel sentinel26379.conf  ——  启动Sentinel

redis-cli -p 26379 info sentinel —— 查看Sentinel信息

5、哨兵机制缺点

若哨兵发生宕机,整个集群将瘫痪。所以为了解决 Sentinel 的单点问题,又要为 Sentinel 创建一个集群,即Sentinel 哨兵集群。一个哨兵的宕机,将不会影响到 Redis 集群的运行。

 三、Redis集群

1、定义

由于数据量过大,单个Master复制集难以承担,因此需要多个复制几6进行集群,形成水平扩展每个复制集只负责存储整个数据集的一部分。可以支持多个Master

其作用是提供在多个Redis节点间共享数据的程序集。

2、作用

①实现读写分离,支持数据的高可用,支持海量数据的读写存储操作;

②集群自带Sentinel的故障转移机制,内置高可用的支持,无需重复使用哨兵功能;

③客户端与Redis的节点连接,不再需要连接集群中的所有结点,只连接集群的一个可用节点即可

④槽位slot负责分配到各个物理服务节点,由对应的集群来负责维护节点、插槽和数据之间的关系

你可能感兴趣的:(redis,缓存,数据库)