先搭建主从结构
当需要运行多个Redis实例时,可以通过为每个实例使用不同的配置文件的方式来实现。
复制redis目录下的redis.conf文件将其重命名为redis6380.conf和redis6381.conf,或者将其放到单独文件夹中,这里为了偷懒,简单实现一下选择直接将其复制到与redis.conf同一目录下。然后修改刚刚复制的配置文件。
命令格式:info replication
作用:检查redis节点的状态信息
- 节点划分策略:根据业务需要要求。
- 示例:以6379为主机、6380、6381为从机
- 实现主从挂载
- 方法通过主从挂载命令完成。
- 主从挂载命令:slaveof host port
- 实现过程:
- 第一步:进入从机客户端,执行主从挂载命令
主从挂载特点:
- 一个主机可以有多个从机。
- 一个从机只有一个主机。从机多次执行slaveof命令,每次执行都是更换主机,而不是从机挂载。
- 主机可以知道所有从机信息、而从机也知道所属主机的信息,而同属一个主机的多台从机之间互不知道。
- 主从之间的通信只在主--从之间进行,而从--从之间没有通信。
- 从机只接受主机的写操作,其它的写操作一律不接受;从机可接受所有的读操作。
哨兵机制
- 原理:
- 当哨兵工作时会连接redis主机,并通过主机,获取所有从机的信息。
- 监控主机运行状况
- 通过心跳检测(ping<---->pong)机制,定时向主机发ping命令,当达到规定次数仍然没有得到主机的pong结果,认定主机宕机。
- 通过随机算法将从所有从机选举出新主机。
- 负责剩下的从机重新挂载到新主机上。
- 当主机恢复后,会做为从机挂载到当前主机上。
- 哨兵机制的实现
- 编辑redis.conf文件
- 编辑sentinel.conf文件
- 位置:
将此配置文件复制到哨兵的工作目录。
基础配置方法:
另外注意:如果主机有密码的情况下需要找到下面这行配置取消注释并填上主机的密码
# masterauth <master-password>
- 哨兵启动
- 哨兵的启动
- 前置条件:sentinel.conf
- 启动命令:redis-sentinel sentinel.conf
- 示例:
- 哨兵的启动