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

相关推荐
難釋懷15 小时前
OpenResty实现Redis查询
数据库·redis·openresty
刘~浪地球16 小时前
Redis 从入门到精通(五):哈希操作详解
数据库·redis·哈希算法
wwj888wwj20 小时前
Docker基础(复习)
java·linux·运维·docker
lifewange20 小时前
Redis的测试要点和测试方法
数据库·redis·缓存
刘~浪地球20 小时前
Redis 从入门到精通(六):列表操作详解
数据库·chrome·redis
better_liang20 小时前
每日Java面试场景题知识点之-Redisson核心价值与优化点详解
java·redis·分布式锁·redisson·微服务架构·分布式系统·缓存优化
DONG99921 小时前
配置docker代理
docker·容器
怎么就重名了21 小时前
docker可以动态修改端口映射吗
运维·docker·容器
JEECG低代码平台1 天前
敲敲云零代码平台一键部署实战:命令安装 vs Docker 安装
运维·docker·容器
p***76981 天前
NAS飞牛Docker 部署OmniBox影视资源聚合平台:网盘秒播、影视聚合、自定义直播,超神的一条龙服务
运维·docker·容器