docker redis主从复制

一、首先搭建三个redis服务

创建三个文件配置目录以及数据目录

创建的目录为/docker/redis/conf

运行一下命令,既启动三个redis

docker run -p 6379:6379 --name redis -v /docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data -d dcf9ec9265e0 redis-server /etc/redis/redis.conf --appendonly yes
docker run -p 6380:6379 --name redis_blank -v /docker/redis/conf2/redis.conf:/etc/redis/redis.conf -v /docker/redis/data2:/data -d dcf9ec9265e0 redis-server /etc/redis/redis.conf --appendonly yes
docker run -p 6381:6379 --name redis_blank2 -v /docker/redis/conf3/redis.conf:/etc/redis/redis.conf -v /docker/redis/data3:/data -d dcf9ec9265e0 redis-server /etc/redis/redis.conf --appendonly yes

二、使用docker 命令进入容器

docker exec -it 容器名称或镜像ID /bin/bash

三、使用客户端命令登录redis

redis-cli -h 127.0.0.1 -p 端口号

使用info replication 命令时,会发现三个redis的信息都为master

环境配置:

使用6379 作为主库,其他均为从库;在配置从库时 不用配置主库即可,

在从库的redis服务中:使用如下命令

slaveof 主库容器的IP地址 端口号 即可;

PS:如出现 Redis主从复制失败(master_link_status:down) 则检查网络是否通畅,检查主库是否设置了密码,检查防火墙端口;

使用docker时,不能用 slaveof 127.0.0.1 6379 ;因为127.0.0.1 不是主库的的IP 是本地的,所以使用docker 命令查看容器IP:docker inspect 容器名称或命令 如: docker inspect redis

 

 四、以上为主从配置的环境

测试步骤:首先在从库设置一个键: 如

 

从库:

 

 详细博客: https://blog.csdn.net/iechenyb/article/details/79828413

 详细概念: https://www.cnblogs.com/wade-luffy/p/9639986.html

小问题?

主库挂了,从库还能读取到数据吗?

答:必须的,主库挂了,从库依然可以获取数据

主库宕机之后,在重启 依然还是主库。

主库挂了,如何让从库变为主库?(冷处理)

可以手动设置,在从库的服务上:使用以下命令 slaveof no one  将slave提升为master,在把宕机的主库手动设置为从库,使用 slvaeof ip 端口号;

热处理

 redis哨兵模式

posted @ 2020-03-22 14:17  哎哟我去a  阅读(271)  评论(0编辑  收藏  举报