基于Docker的Redis容器主从复制搭建
2021/4/30 2:27:02
本文主要是介绍基于Docker的Redis容器主从复制搭建,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一. 一主机两从机
1.首先创建Redis容器:
2.配置两个从机的配置文件redis.conf:
replicaof ip地址 端口号 masterauth 主机密码
3.测试查看
info replication
主机输入后显示:
从机输入后显示:
在主机输入数据:
在从机查看数据:
二.薪火相传式连接
1.命令连接
在第一个从机输入:
slaveof 182.92.0.84 6382
在第二个从机输入:
slaveof 182.92.0.84 6383
完成链接!
2.测试查看
info replication
在主机输入显示:
在第一个从机输入显示:
在第二个从机输入显示:
连接成功!
三.反客为主:
在主机挂掉之后,选择一个从机输入:
slaveof no one
四.复制原理
Slave启动成功连接到master后会发送一个sync命令;
Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改参数集命令,在后台进程执行完毕后,master将传送整个数据文件到salve,以完成一次完全同步。
全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。
增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步。
但是只要是重新连接master,一次完全同步(全量复制)将被自动执行。
五.哨兵模式
反客为主的自动版,能够后台监控主机是否故障,如果故障了根据票数自动从库转换为主库
1.配置sentinel.conf文件
sentinel monitor host 182.92.0.84 6382 1 sentinel auth-pass host qiusuo521. sentinel down-after-milliseconds host 3000 //检测到主机挂掉后,多久选取一台从机作为主机,默认值是30s,这里调成3s
2、启动哨兵
$ docker run -it --name sentinel -p 26379:26379 -v /etc/redis/sentinel.conf:/etc/sentinel.conf -d redis /bin/bash
进入容器,启动服务
# 进入容器 $ docker exec -it sentinel bash # 启动哨兵 redis-sentinel /etc/sentinel.conf
在master执行shutdown后
slave中的一个从机变为master,一个从机
重启之前的master之后,变为从机:
复制的缺点:复制延时-由于所有的写操作都是发生在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave、机器数量的增加也会使这个问题更加严重。
这篇关于基于Docker的Redis容器主从复制搭建的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-18Redis安装入门:新手必读指南
- 2024-11-08阿里云Redis项目实战入门教程
- 2024-11-08阿里云Redis资料:新手入门与初级使用指南
- 2024-11-08阿里云Redis教程:新手入门及实用指南
- 2024-11-07阿里云Redis学习入门:新手必读指南
- 2024-11-07阿里云Redis学习入门:从零开始的操作指南
- 2024-11-07阿里云Redis学习:初学者指南
- 2024-11-06阿里云Redis入门教程:轻松搭建与使用指南
- 2024-11-02Redis项目实战:新手入门教程
- 2024-10-22Redis入门教程:轻松掌握数据存储与操作