redis主从复制(在虚拟机centos的docker下)

1.安装docker

Docker安装(CentOS)+简单使用-CSDN博客

2.编辑3个redis配置

复制代码
cd /etc
mkdir redis-ms
cd redis-ms/
vim redis6379.conf
vim redis6380.conf
vim redis6381.conf

# master
#端口号
port 6379

#设置客户端连接后进行任何其他指定前需要使用的密码
requirepass 123456

#daemonize no 将daemonize yes注释起来或者 daemonize no设置,因为该配置和docker run中-d参数冲突,会导致容器一直启动失败
daemonize no

# 任何主机都可以连接到redis
bind 0.0.0.0

#是否开启保护模式,默认开启。要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问。
protected-mode no

# 默认情况下,redis会在后台异步的把数据库镜像备份到磁盘,但是该备份是非常耗时的,而且备份也不能很频繁,如果发生诸如拉闸限电、拔插头等状况,那么将造成比较大范围的数据丢失。
# 所以redis提供了另外一种更加高效的数据库备份及灾难恢复方式。
# 开启append only模式之后,redis会把所接收到的每一次写操作请求都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态。
# 但是这样会造成appendonly.aof文件过大,所以redis还支持了BGREWRITEAOF指令,对appendonly.aof 进行重新整理。
# 你可以同时开启asynchronous dumps 和 AOF
appendonly yes

# slave1
port 6380

#设置客户端连接后进行任何其他指定前需要使用的密码
requirepass 123456

# 这一步很重要!主从认证密码,否则主从不能同步!!
masterauth 123456

#daemonize no 将daemonize yes注释起来或者 daemonize no设置,因为该配置和docker run中-d参数冲突,会导致容器一直启动失败
daemonize no

# 任何主机都可以连接到redis
bind 0.0.0.0

#是否开启保护模式,默认开启。要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问。
protected-mode no

# 开启AOF
appendonly yes

# slave2
port 6381

#设置客户端连接后进行任何其他指定前需要使用的密码
requirepass 123456

# 这一步很重要!主从认证密码,否则主从不能同步!!
masterauth 123456

#daemonize no 将daemonize yes注释起来或者 daemonize no设置,因为该配置和docker run中-d参数冲突,会导致容器一直启动失败
daemonize no

# 任何主机都可以连接到redis
bind 0.0.0.0

#是否开启保护模式,默认开启。要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问。
protected-mode no

# 开启AOF
appendonly yes

3.部署3个redis

复制代码
docker run -p 6379:6379 -v $PWD/data6379:/data -v $PWD/redis6379.conf:/etc/redis/redis.conf --privileged=true --name redis-6379 -d redis redis-server /etc/redis/redis.conf

docker run -p 6380:6380 -v $PWD/data6380:/data -v $PWD/redis6380.conf:/etc/redis/redis.conf --privileged=true --name redis-6380 -d redis redis-server /etc/redis/redis.conf

docker run -p 6381:6381 -v $PWD/data6381:/data -v $PWD/redis6381.conf:/etc/redis/redis.conf --privileged=true --name redis-6381 -d redis redis-server /etc/redis/redis.conf

4.查看主redis的 IPAddress

复制代码
docker ps | grep redis-6379

docker inspect be101fa40be7 | grep IPAddress

找到对应的 "IPAddress": "172.17.0.4"

5.查看主redis的信息

进入:docker exec -it redis-6379 redis-cli -p 6379

密码验证: auth 123456

查看信息:info replication

role:master

connected_slaves:0

6.进入从redis

进入:docker exec -it redis-6380 redis-cli -p 6380

密码验证: auth 123456

关联:slaveof 172.17.0.4 6379

注:6381 一样的操作

7.再次查看主redis的信息

8.大功告成 开始验证

在主redis设置值

在从redis查看

注:从redis是只读的状态

相关推荐
Seven9728 分钟前
用过redis哪些数据类型?Redis String 类型的底层实现是什么?
redis
进击的阿尔法猿1 小时前
docker
运维·docker·容器
刘一说2 小时前
CentOS 系统 Java 开发测试环境搭建手册
java·linux·运维·服务器·centos
木易双人青9 小时前
01-Docker-简介、安装与使用
运维·docker·容器
Fireworkitte12 小时前
Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动
linux·ubuntu·centos
ac.char13 小时前
在CentOS系统中查询已删除但仍占用磁盘空间的文件
linux·运维·centos
.Shu.13 小时前
Redis Reactor 模型详解【基本架构、事件循环机制、结合源码详细追踪读写请求从客户端连接到命令执行的完整流程】
数据库·redis·架构
AI大模型16 小时前
基于 Docker 的 LLaMA-Factory 全流程部署指南
docker·llm·llama
tb_first18 小时前
k8sday11服务发现(2/2)
docker·云原生·容器·kubernetes·k8s
发愤图强的羔羊19 小时前
Docker 搭建 SVN 服务器
docker