一、redis搭建主从复制
目的:
数据备份
,但是无法解决主节点的自动故障转移
-
准备四台机器,一台主机,三台从机【为哨兵机制的搭建做准备】
-
主节点、从节点、另一个从节点配置redis.conf
# 1.从节点设置:
slaveof masterIp masterPort
slaveof 192.168.75.110 7000
# 2.更改守护进程【后台】
daemonize yes
# 3.更改远程访问权限,每一台机器都要配置
bind 0.0.0.0
# 4.更改端口是为了辨识度,不进行更改也是可以的
示例:
# 1.主机点 master
port 7000
bind 0.0.0.0
# salve1
port 7002
bind 0.0.0.0
slaveof 192.168.75.240 7000
# salve2
port 7003
bind 0.0.0.0
slaveof 192.168.75.240 7000
# salve3
port 7004
bind 0.0.0.0
slaveof 192.168.75.240 7000
实操:
# 从源码中copy redis的配置文件
cp /usr/redis/redis-4.0.10/redis.conf /usr/redis/
# 修改配置文件
vim /usr/redis/redis.conf
找到配置文件中的slave of 位置 底线命令模式下输入 /slave 进行搜索
/slave
修改主节点ip 和 端口
其他两个节点做相同的操作。
注意:主节点不需要指定slave of
依次开启redis服务,并加载配置文件
# 进入指定目录
cd /usr/redis/bin
# 开启服务并加载配置文件
./redis-server ../redis.conf
访问指定的ip的redis服务:
# 主机添加一个信息
./redis-cli -h 192.168.75.240 -p 7000
# 转到从机上查看主从配置是否生效
在客户端窗口中也可以输入命令查看主从复制信息
info replication
二、哨兵机制
哨兵机制 sentinel,是redis的一个高可用性解决方案,有一个或者多个Sentinel实例组成的Sentinel系统可以监视多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线的主服务器属下的从服务器升级为新的主服务器。简单地说哨兵机制就是带有自动故障转移功能的主从架构。
搭建哨兵架构【在主从复制的基础上
】
# 1.在主节点上创建哨兵机制
- 去redis解压源码中copysentinel.conf文件到Master对应redis.conf同目录下
cp /usr/redis/redis-4.0.10/sentinel.conf /usr/redis/
# 2.配置哨兵,在sentinel.conf中写入一下内容
- sentinel monitor 被监控数据库名字【自己命名】 ip port 1
vim /usr/redis/sentinel.conf
sentinel monitor mymaster 192.168.75.240 7000 1
sentinel monitor sentinel1 192.168.75.230 7002 2
sentinel monitor sentinel2 192.168.75.220 7003 3
sentinel monitor sentinel3 192.168.75.225 7004 4
# 3.启动哨兵模式进行测试 [redis-sentinel ]
cd /usr/redis/bin/
./redis-sentinel ../sentinel.conf
# 默认心跳时间15s
测试哨兵
-
测试主从复制是否有效
-
杀死主节点redis进程,查看日志选举过程
-
7004被选举成为新的主节点 ,7000被替换成从节点
至此,哨兵配置完成。
注意:
哨兵的配置是基于主从复制之上的,首先要保证的就是主从复制配置成功
哨兵(从机)的机器数量一定是单数,因为在主机宕掉之后哨兵要进行选举,票多者被重新选为主机
哨兵的选举是不可逆的。宕掉的主机重启之后也会永远变为从机
哨兵机制无法解决:
单节点的并发压力
问题
单节点的物理上限
问题
集群的搭建很好地解决了这个问题。