下载安装
首先下载安装 3台Redis 做一主多从来进行搭建,安装就不介绍了,推荐看菜鸟教程
主从环境准备
ip | 端口 | 名称 |
---|---|---|
127.0.0.1 | 6379 | master |
127.0.0.1 | 6380 | save1 |
127.0.0.1 | 6381 | save2 |
127.0.0.1 | 26379 | Master-sentinel |
127.0.0.1 | 26380 | save1-sentinel |
127.0.0.1 | 26381 | save2-sentinel |
设置3个节点,用于一主多从的环境演示,sentinel 监控节点信息
Redis 服务配置:
vim redis.conf
找到文件中的 port 修改成对应的端口,主节点无需修改,端口按照上面的来配置
daemonize 修改成 yes 后台启动
进入到src 目录中 启动redis 服务
./redis-server ../redis.conf
Sentinel 服务配置
vim sentinel.conf
找到文件中的 port 修改成对应的端口,主节点无需修改,哨兵端口也按照上面的来进行配置
daemonize 修改成 yes
# 哨兵监听的端口
port 26379
# 进程后台运行, 这个必须的
daemonize yes
# 监视一个名为mymaster的主服务器,这个主服务器的 IP 地址为 127.0.0.1,端口号为 6379
# 后面那个2指的是将这个主服务器判断为失效至少需要1个Sentinel同意(只要同意Sentinel的数量不达标,自动故障迁移就不会执行)
sentinel monitor mymaster 127.0.0.1 6379 2
修改成功后 后台启动
./redis-sentinel ../sentinel.conf
注意:上述配置需要在3个节点中同步执行,大家最好按照我上面的来,就在一台机子上面去执行,如果不是同一台机子,那么需要修改主节点的ip
主从复制
3个redis节点启动成功后,访问从节点服务,在从节点上面使用SLAVEOF 建立主从关系,实现主从复制:
SLAVEOF -h 127.0.0.1 -p 6379
在两个从节点上面都执行上述命令,当前命令的意思就是 6379 是当前节点的主节点
查看执行情况:
主节点上面查看:
info replication
在从节点中查看:
这图可以看到,主节点上面有2个从节点信息,从节点上面可以看到角色是slave节点,这时候大家在主节点上面执行 set key value 在从节点也可以看到,说明主从配置成功了。
哨兵机制
上面已经配置好了哨兵到配置文件,其实也很简单,端口不一样,监听到主节点是一致的,接下来我们启动哨兵,当我们主节点挂掉后,从节点是否会选举成为主节点。
启动哨兵:
在src 目录下面
./redis-sentinel ../sentinel.conf
三个节点都需要修改,并且启动,启动成功后,我们使用客户端进入sentinel 里面,查看情况
redis-cli -h 127.0.0.1 -p 26379
以上配置和启动后,这时候我们来使用命令让主节点挂掉,sentinel 会不会监控,并且从 从节点上面选举一个成功主节点?
DEBUG SEGFAULT
在主节点上面使用命令,让主节点挂掉,等待几秒钟后,查看从节点的状态:
info replication
我们在从节点中使用 info replication 查看当前状态,如果有一个从节点成为主节点,那么说明我们哨兵机制搭建成功了,
如果后续主节点重启后,他就会自动成功选举后的主节点的从节点。