docker 上面安装redis 主从复制

参考文档:
http://cfwlxf.blog.51cto.com/3966339/1433637

修改配置文件

redis 主从复制的配置非常简单,只要在redis的slave上的配置文件redis.conf 中加入

       slaveof <master的IP地址>   <master的端口>

如果master的redis有密码,则加入

       masterauth <master的访问密码>

设置redis用dump.rdb方式持久化的时候,指定dump.rdb文件名和所在路径,是在redis.conf文件中指定下面2个项

# RDB文件名,默认为dump.rdb。
dbfilename dump.rdb

# 文件存放的目录,AOF文件同样存放在此目录下。默认为当前工作目录。
dir ./

生成docker image的时候,使用的相应的Dockerfile如下:

master的

FROM redis:3.2.5
MAINTAINER "roamer <roamerxv@gmail.com>"
#自定义的配置文件,以替换原有image中的配置文件
COPY redis-master.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]

slave的

FROM redis:3.2.5
MAINTAINER "roamer <roamerxv@gmail.com>"
#自定义的配置文件,以替换原有image中的配置文件
COPY redis-slave.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]

根据当前目录下的Dockfile ,生成image的命令分别如下

cd /home/docker/master
docker build -t redis-master .
cd /home/docker/slave
docker build -t redis-slave .

运行容器的命令

docker run --name redis-master -d -p 16379:6379  --restart=always  redis-master
docker run --name redis-slave-01 -d -p 26379:6379  --restart=always  redis-slave
### 基于Docker配置Redis主从复制的指南 基于Docker配置Redis主从复制需要完成以下几个关键任务:获取镜像、创建容器、配置主从关系以及验证配置。以下是详细的配置过程和注意事项。 #### 1. 获取Redis镜像 首先,确保本地已经安装Docker环境。然后拉取官方的Redis镜像: ```bash docker pull redis ``` #### 2. 创建Redis主服务器容器 运行以下命令创建并运行Redis主服务器容器,指定端口映射和网络名称: ```bash docker run -d --name redis-master -p 6379:6379 --network redis-network redis ``` 此命令会启动一个名为`redis-master`的容器,并将主机的6379端口映射到容器的6379端口[^1]。 #### 3. 配置Redis从服务器容器 接下来,创建Redis从服务器容器,并配置其为主服务器的副本。可以通过挂载自定义配置文件实现这一点。 ##### 3.1 修改`redis.conf`文件 在宿主机上创建或编辑`redis.conf`文件,添加以下内容以配置从服务器: ```conf bind 0.0.0.0 protected-mode no port 6380 replicaof 172.17.0.2 6379 ``` 其中,`172.17.0.2`是主服务器容器的IP地址,可以通过以下命令获取: ```bash docker inspect redis-master | grep IPAddress ``` ##### 3.2 启动从服务器容器 使用以下命令启动从服务器容器,并挂载配置文件: ```bash docker run -d --name redis-slave -p 6380:6380 --network redis-network \ -v /path/to/redis.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf ``` 这里,`/path/to/redis.conf`是宿主机上的配置文件路径[^5]。 #### 4. 验证主从复制配置 进入主服务器容器,检查其状态: ```bash docker exec -it redis-master redis-cli info replication ``` 输出中应显示`role:master`和`connected_slaves:1`,表示主服务器已成功连接至少一个从服务器[^4]。 进入从服务器容器,检查其状态: ```bash docker exec -it redis-slave redis-cli info replication ``` 输出中应显示`role:slave`和`master_link_status:up`,表示从服务器已成功连接到主服务器[^4]。 #### 5. 注意事项 - 确保主从服务器容器位于同一Docker网络中,以便它们能够互相通信。可以通过`--network`参数指定网络名称。 - 如果使用自定义配置文件,请确保文件路径正确且权限设置适当。 - 在生产环境中,建议启用密码认证以提高安全性。 ```python # 示例代码:验证主从复制功能 import redis master = redis.StrictRedis(host='localhost', port=6379, decode_responses=True) slave = redis.StrictRedis(host='localhost', port=6380, decode_responses=True) # 写入数据到主服务器 master.set('test_key', 'test_value') # 从从服务器读取数据 value = slave.get('test_key') print(value) # 输出应为 test_value ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值