Redis+docker构建主从环境

恰巧因为最近学习心爆棚,还有一些个人原因,想记录一些自个认为以后工作会需要的,并且容易混淆的知识点。有个前辈和我说过,现在面试基本都是考验性能和高可用,比如:性能优化的mysql的redis的,分布式缓存,分布式锁、多级缓存、缓存一致性、负载均衡。这里,我想先从redis章节开始记录,主要可能就是redis的主从复制,读写分离,分布式缓存,哨兵机制吧。

搭建两台docker的redis容器

构建docker前,我们需要先了解docker的网络设置。基本命令啥的我就说了,后面可能会有补充章节来专门说docker的基本常用语法。

了解容器网络

Docker安装后,默认会创建下面三种网络类型:
docker network ls 查看默认的网络
1)bridge:桥接网络:默认情况下启动的Docker容器,都是使用 bridge,Docker安装时创建的桥接网络,每次Docker容器重启时,会按照顺序获取对应的IP地址,这个就导致重启 下,Docker的IP地址就变了
2)none:无指定网络:无指定网络 使用 --network=none ,docker 容器就不会分配局域网的IP
3)host: 主机网络:主机网络 使用 --network=host,此时,Docker 容器的网络会附属在主机上,两者是互通的。 例如,在容器中运行一个Web服务,监听8080端口,则主 机的8080端口就会自动映射到容器中

  • 查看网络详情
docker network inspect bridge
  • 创建网络(当有多个独立的container之间需要彼此访问时,推荐使用自建bridge网络)
docker network create --driver bridge my-network

准备相关文件

Dockerfile文件
主节点reids-conf文件
从节点reids-conf文件

开始部署

  • 预先分配好宿主机的主从文件目录
  • 集群节点规划
容器名称容器IP地址映射端口号宿主机IP地址
Redis-master192.160.1.26380 -> 6379106.52.210.90
Redis-slave192.160.1.36381 -> 6379106.52.210.90
  • 搭建命令
 master:docker run -itd -v /www/wwwroot/redis/dockerTest/redis/master:/usr/src/redis -p 6380:6379 --network=wuhequan --ip=192.160.1.2 --name redis-master redis
 slave:docker run -itd -v /www/wwwroot/redis/dockerTest/redis/slave:/usr/src/redis -p 6381:6379 --network=wuhequan --ip=192.160.1.3 --name redis-slave redis
  • 构建完成后,就可以进入从容器,连接master主开始主从备份
    • 进入容器 :docker exec -it redis-master bash
    • 输入密码:redis-cli -a 123456
      • 因为前面映射文件夹里面的redis.conf配置了密码:
        在这里插入图片描述
  • 配置主连接
外网:slaveof 106.52.210.90 6380
内网:slaveof 192.160.1.3 6379` (一般不用内网去连接)

注释:这里一旦复制,就开始从主节点那边全部复制过了,如果从节点有旧数据,会先清空从节点服务器数据。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值