在 docker 环境下 redis 主从部署示例

基于腾讯云,docker 系统

单节点部署

1、拉取镜像

docker pull redis

2、创建挂载目录

mkdir -p /home/redis/data /home/redis/conf

3、获取Redis的配置文件

wget http://download.redis.io/redis-stable/redis.conf

4、修改配置文件

port 6379

#密码
requirepass 123456

#daemonize yes会和docker run中-d参数冲突,会导致容器一直启动失败
daemonize no

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

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

3、启动节点

docker run -p 6379:6379 \
 -v /home/redis/conf/data:/data  \
 -v /home/redis/conf/redis.conf:/etc/redis/redis.conf  \
 --privileged=true \
 --name redis \
 -d redis redis-server /etc/redis/redis.conf

4、进入 redis

docker exec -it redis redis-cli -p 6379 -a 123456(密码)

5、查看信息

info replication

主从部署

参考文章 https://zhuanlan.zhihu.com/p/647155496

上面的服务可以看作主节点,接下来配置从节点

1、创建挂载目录

mkdir -p /home/redis_6380/data /home/redis_6380/conf

3、获取Redis的配置文件

wget http://download.redis.io/redis-stable/redis.conf

4、修改配置文件

port 6380

#密码
requirepass 123456

#当主机设置密码之后,要配置这个参数,否则不能同步
masterauth 123456

#daemonize yes会和docker run中-d参数冲突,会导致容器一直启动失败
daemonize no

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

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

3、启动节点

docker run -p 6380:6380 \
 -v /home/redis_6380/conf/data:/data  \
 -v /home/redis_6380/conf/redis.conf:/etc/redis/redis.conf  \
 --privileged=true \
 --name redis_6380 \
 -d redis redis-server /etc/redis/redis.conf

4、进入 redis

docker exec -it redis_6380 redis-cli -p 6380 -a 123456(密码)

5、查看主机 ip,这个 ip 不是机器 ip

[root@VM-4-3-centos ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                                 NAMES
bfe882016b1a   redis     "docker-entrypoint.s…"   6 minutes ago    Up 6 minutes    6379/tcp, 0.0.0.0:6380->6380/tcp, :::6380->6380/tcp   redis_6380
d74711c1a5a4   redis     "docker-entrypoint.s…"   27 minutes ago   Up 27 minutes   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp             redis
[root@VM-4-3-centos ~]# docker inspect d74711c1a5a4

在这里插入图片描述

6、 从节点绑定到主节点

[root@VM-4-3-centos ~]# slaveof 172.17.0.2 6379

或者修改从节点配置文件

replicaof 172.17.0.2 6379

7、查看主节点和从节点信息
在这里插入图片描述

在这里插入图片描述
这样说明配置成功

=======================================================================

docker 删除 redis 节点

[root@VM-4-3-centos conf]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                                 NAMES
fc47203bf9b7   redis     "docker-entrypoint.s…"   6 minutes ago    Up 6 minutes    6379/tcp, 0.0.0.0:6380->6380/tcp, :::6380->6380/tcp   redis_6380
d74711c1a5a4   redis     "docker-entrypoint.s…"   15 minutes ago   Up 15 minutes   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp             redis
[root@VM-4-3-centos conf]# docker stop fc47203bf9b7
fc47203bf9b7
[root@VM-4-3-centos conf]# docker rm redis_6380 
redis_6380

docker stop 后面跟的值是要删除那个节点的 CONTAINER ID 值

查看 redis 版本

docker exec -it  redis  redis-server -v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值