第一章、redis主从部署加哨兵模式
一、1主2从
二、1主1从1从(推荐:同时同步主节点容易导致主节点挂机)
三、下载部署redis(这里使用6.2.2版本)
#下载redis wget https://download.redis.io/releases/redis-6.2.2.tar.gz #解压到当前文件夹 tar -xzvf redis-6.2.2.tar.gz #进入到redis-6.2.2 cd redis-6.2.2/ #执行编译命令 make #安装到指定路径 make PREFIX=/home/w/software/redis-6.2.2/ install #(3.1)修改配置后启动redis
nohup ./bin/redis-server ./redis.conf &
3.1、修改主节点配置项
#绑定本机的IP地址或者(127.0.0.1/只本机可访问)(0.0.0.0/本机所有IP地址都可访问,多网卡下使用) bind 192.168.xx.xx #设置端口,默认6379 port 6379 #设置redis密码 requirepass [your password] #设置访问权限,默认yes开启 protected-mode yes #1、关闭protected-mode模式,此时外部网络可以直接访问 #2、开启protected-mode保护模式,需配置bind ip或者设置访问密码(推荐)
启动后查看主节点信息,可以看到目前该节点为主节点,没有从节点
info replication
3.2、修改从节点配置(在主节点配置基础上修改)
#本机IP bind 192.168.xx.xx #设置本机redis密码 requirepass 123456 # 主节点IP slaveof 192.168.xx.xx #主节点(master) 密码 masterauth 123456
启动从节点并查看从节点信息;可以看到该节点为从节点,对应主节点为xx.xx
#启动 nohup ./bin/redis-server ./redis.conf & #redis cli 查看节点信息 info replication
3.3、另一个从节点同样的操作即可;该方式就实现了1主2从
3.4、1主1从1从模式(唯一的变化slaveof 的IP由主节点改为第一个从节点):
#本机IP bind 192.168.xx.xx #设置本机redis密码 requirepass 123456 # 从节点IP slaveof 192.168.xx.xx #主节点(master) 密码 masterauth 123456
四、哨兵模式
一般情况下,至少会需要三个哨兵对redis 进行监控,三台服务器每台启动一个哨兵
1、修改配置文件
# 配置监听的主服务器,这里sentinel monitor代表监控,mymaster代表服务器的名称,可以自定义,192.168.xx.xx代表监控的主服务器,6379代表端口,2代表只有两个或两个以上的哨兵认为主服务器不可用的时候,才会进行failover操作。 sentinel monitor mymaster 192.168.xx.xx 6379 2 #redis密码 sentinel auth-pass mymaster 123456
2、启动哨兵
nohup ./bin/redis-sentinel sentinel.conf &
3、kill 主节点的redis,模拟选举,默认30秒未检测到主节点则进行重新选举
4、重新选举后,新主节点获取到写入权限,其他节点同步该子节点
5、重启oldMaster节点,将变为从节点
注:如果重启后不同步新节点数据,info replication 得到如下结果:
需要修改oldMaster节点的配置,这是因为oldMaster不知道从节点的redis 密码导致
vi redis.conf #增加配置项,该项为主节点的redis密码 masterauth 123456
建议:主从节点的redis密码保持一致,避免选举后无法同步数据
学无止境...