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是只读的状态

相关推荐
tellmewhoisi8 小时前
项目部署docker(指令解析和docker-compose基础指令)
docker·容器
dinl_vin9 小时前
FastAPI 系列 ·(十二):生产部署——Docker + 配置管理(系列完结)
docker·容器·fastapi
看到代码头都是大的9 小时前
CentOS环境下手动升级openssl、openssh
linux·运维·centos
洛水水9 小时前
Redis 分布式锁详解:实现与缺陷
数据库·redis·分布式
蠢货爱好者11 小时前
Docker基础操作
运维·docker·容器
tongluowan00711 小时前
Redisson的参数及工作原理
java·redis·lua·分布式锁
山人在山上11 小时前
docker zlmediakit 部署
docker·zlmediakit
hopsky12 小时前
phoenix docker 启动
运维·docker·容器
rising start15 小时前
从客户端通信到分布式消息中间件
redis·分布式·kafka·rabbitmq·mq
草木红15 小时前
Redis 语法基础入门
数据库·redis·缓存