redis+docker 构建主从环境
小铨,铨程互动科技创始人,诞生于 1994 年 7 月 24 日(农历),目前是一个码农,从事 PHP/GO 开发。一枚想让腾讯的马化腾,阿里巴巴的马云来挖我墙角的 90 后程序员。
前言
恰巧因为最近学习心爆棚,还有一些个人原因,想记录一些自个认为以后工作会需要的,并且容易混淆的知识点。有个前辈和我说过,现在面试基本都是考验性能和高可用,比如:性能优化的 mysql 的 redis 的,分布式缓存,分布式锁、多级缓存、缓存一致性、负载均衡。这里,我想先从 redis 章节开始记录,主要可能就是 redis 的主从复制,读写分离,分布式缓存,哨兵机制吧。
搭建两台 docker 的 redis 容器
>构建 docker 前,我们需要先了解 docker 的网络设置。基本命令啥的我就说了,后面可能会有补充章节来专门说 docker 的基本常用语法。
### 了解容器网络
Docker 安装后,默认会创建下面三种网络类型:
1)bridge:桥接网络:默认情况下启动的 Docker 容器,都是使用 bridge,Docker 安装时创建的桥接网络,每次 Docker 容器重启时,会按照顺序获取对应的 IP 地址,这个就导致重启 下,Docker 的 IP 地址就变了
2)none:无指定网络:无指定网络 使用 --network=none ,docker 容器就不会分配局域网的 IP
3)host: 主机网络:主机网络 使用 --network=host,此时,Docker 容器的网络会附属在主机上,两者是互通的。 例如,在容器中运行一个 Web 服务,监听 8080 端口,则主 机的 8080 端口就会自动映射到容器中
- 查看网络详情
- 创建网络(当有多个独立的 container 之间需要彼此访问时,推荐使用自建 bridge 网络)
### 准备相关文件
开始部署
- 预先分配好宿主机的主从文件目录
- 集群节点规划
|容器名称 | 容器 IP 地址 |映射端口号|宿主机 IP 地址 |
|--|--|--|--|--|
| Redis-master | 192.160.1.2 | 6380 -> 6379 |106.52.210.90 | |
| Redis-slave| 192.160.1.3 | 6381 -> 6379 |106.52.210.90 | |
- 搭建命令
- 构建完成后,就可以进入从容器,连接 master 主开始主从备份
- 进入容器 :docker exec -it redis-master bash
- 输入密码:redis-cli -a 123456
- 因为前面映射文件夹里面的 redis.conf 配置了密码:
配置主连接
>注释:这里一旦复制,就开始从主节点那边全部复制过了,如果从节点有旧数据,会先清空从节点服务器数据。
版权声明: 本文为 InfoQ 作者【小铨】的原创文章。
原文链接:【http://xie.infoq.cn/article/aad84c7ba34eb60d519b3d689】。文章转载请联系作者。
评论