Docker部署redis主从复制哨兵机制

一、主从复制

两台服务器
192.168.33.111(主)
192.168.33.112(备)
注意:主从复制的开启,完全是在从节点发起的;不需要在主节点做任何事情。

cd /usr/local/redis/conf
vi redis.conf

在从服务器的配置文件中加入主服务器的ip和端口,要作主从切换,所以建议所有的密码都一致, masterauth是从机对主机验证时,所需的密码。(即主机的requirepass)

slaveof 192.168.33.111 6380
masterauth 199032

分别启动redis然后进入客户端测试

docker run --privileged=true -p 6380:6379 --name redis -v /usr/local/redis/data:/data -v /usr/local/redis/conf:/usr/local/etc/redis -v /etc/localtime:/etc/localtime -d redis:3.2 redis-server /usr/local/etc/redis/redis.conf

docker run --privileged=true -p 6381:6379 --name redis -v /usr/local/redis/data:/data -v /usr/local/redis/conf:/usr/local/etc/redis -v /etc/localtime:/etc/localtime -d redis:3.2 redis-server /usr/local/etc/redis/redis.conf

docker exec -it 1083b6941f60 redis-cli -h 192.168.33.111 -p 6380 -a '199032'

docker exec -it 9a223efcfd09 redis-cli -h 192.168.33.112 -p 6381 -a '199032'

info命令查看当前服务器角色,如图:
在这里插入图片描述
主从复制里redis只能存在一个主,可以多个从,主机执行写命令,从机只能读并且能同步主机的值,主从复制,读写分离就实现了。

二、哨兵机制

万一主机挂了怎么办,所以redis提供了一个sentinel(哨兵),以此来实现主从切换的功能。当主挂了之后会自动选举一个从节点作为主,复活后的主变为从。

1、分别在主从节点对应redis.conf同目录下新建sentinel.conf文件,名字绝对不能错。
2、配置哨兵,在sentinel.conf文件中填入内容:
sentinel monitor 被监控数据库名字(自己起名字) ip port 1

cd /usr/local/redis/conf
vi sentinel.conf

#每个节点端口号要配置不一样(从节点修改端口号26381)
port 26380
dir "/data"
logfile "sentinel.log"
sentinel monitor mymaster 192.168.33.111 6380 1
sentinel auth-pass mymaster 199032
#修改心跳检测 5000毫秒
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
#后台守护进程启动(注意docker是以配置文件启动所以设置为no)
daemonize no
#允许外网访问
protected-mode no

上述参数含义参照
https://blog.youkuaiyun.com/a1282379904/article/details/52335051/

3、启动哨兵

docker run --privileged=true -p 26380:26380 --name redis-sentinel -v /usr/local/redis/conf:/usr/local/etc/redis -d redis:3.2 redis-sentinel /usr/local/etc/redis/sentinel.conf
#进入哨兵客户端
docker exec -it 433a582f99b6 redis-cli -h 192.168.33.111 -p 26380 -a '199032'
#info命令查看信息
#进入容器也可以查看日志,默认data目录下有日志信息
#退出容器查看进程是否都在
ps -ef | grep redis

4、停止主redis节点,进入从redis节点客户端看是否切换

docker exec -it ae587b7756dd redis-cli -h 192.168.33.112 -p 6381 -a '199032'
info

复制的缺点:
延时,由于所有的写操作都是在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使得这个问题更加严重。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值