docker搭建Redis的主从集群
服务器:Centos7
前提:selinux关掉
一,安装docker并配置镜像加速(我用的阿里加速)
[root@localhost ~]# yum -y install docker
[root@localhost ~]# cd /etc/docker/
[root@localhost docker]# cat daemon.json
{"registry-mirrors": ["https://yol1de5p.mirror.aliyuncs.com"]
}
[root@localhost docker]# systemctl restart docker
二,拉取redis镜像
[root@localhost ~]# docker pull redis
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/redis latest 36304d3b4540 10 days ago 104 MB
三,运行redis-server容器并做持久化配置
[root@localhost ~]# mkdir /data
主:
[root@localhost ~]# docker run --name redis-master -d -p 6379:6379 -v /opt/redis-master:/data redis
俩从:
[root@localhost ~]# docker run --name redis-slave1 -d -p 6380:6379 -v /opt/redis-slave1:/data redis
[root@localhost ~]# docker run --name redis-slave2 -d -p 6381:6379 -v /opt/redis-slave2:/data redis[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
28e215ff4bc2 redis "docker-entrypoint..." 21 seconds ago Up 20 seconds 0.0.0.0:6381->6379/tcp redis-slave2
7e579f3ec09c redis "docker-entrypoint..." 56 seconds ago Up 56 seconds 0.0.0.0:6380->6379/tcp redis-slave1
d7af410bffc3 redis "docker-entrypoint..." 2 minutes ago Up 2 minutes 0.0.0.0:6379->6379/tcp redis-master
四,查看容器IP
[root@localhost ~]# docker inspect redis-master redis-slave1 redis-slave2 | grep IPAd"SecondaryIPAddresses": null,"IPAddress": "172.17.0.2","IPAddress": "172.17.0.2","SecondaryIPAddresses": null,"IPAddress": "172.17.0.3","IPAddress": "172.17.0.3","SecondaryIPAddresses": null,"IPAddress": "172.17.0.4","IPAddress": "172.17.0.4",
注:这里记住主的IP:172.17.0.2
五,配置redis集群,一主两从
我们将redis-master配置为主,redis-slave1和redis-slave2配置为从
登录从redis-slave1
[root@localhost ~]# docker exec -it redis-slave1 redis-cli
127.0.0.1:6379> SLAVEOF 172.17.0.2 6379
OK
127.0.0.1:6379> ROLE
1) "slave"
2) "172.17.0.2"
3) (integer) 6379
4) "connected"
5) (integer) 14
登录从redis-slave2
[root@localhost ~]# docker exec -it redis-slave2 redis-cli
127.0.0.1:6379> SLAVEOF 172.17.0.2 6379
OK
127.0.0.1:6379> ROLE
1) "slave"
2) "172.17.0.2"
3) (integer) 6379
4) "connected"
5) (integer) 112
登录主redis-master查看主从情况
[root@localhost ~]# docker exec -it redis-master redis-cli
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=172.17.0.3,port=6379,state=online,offset=252,lag=0
slave1:ip=172.17.0.4,port=6379,state=online,offset=252,lag=1
六,验证主从是否集群成功
[root@localhost ~]# docker exec -it redis-master redis-cli
127.0.0.1:6379> set name tom
OK
127.0.0.1:6379> exit
[root@localhost ~]# docker exec -it redis-slave1 redis-cli
127.0.0.1:6379> get name
"tom"
127.0.0.1:6379> exit
[root@localhost ~]# docker exec -it redis-slave2 redis-cli
127.0.0.1:6379> get name
"tom"
127.0.0.1:6379>
docker搭建Redis的主从集群相关推荐
- docker搭建redis高可用集群
目标:docker搭建redis高可用集群 1.架构:六个redis容器,三主三从,主从复制,主机宕机从机自动替代 2.网络架构设计:设计一个专属redis的docker网络 docker netwo ...
- Docker下Redis Cluster分片集群的搭建、基本操作、集群扩容和集群故障转移(非关系型数据库技术课程 第九周)
文章目录 Docker 下Redis Cluster 分片集群搭建 1. Cluster 分片集群 1.1 Cluster 集群的结构和作用 1.2 Cluster 分片集群 的作用 1.3哈希槽(h ...
- Docker搭建MongoRocks副本分片集群(Docker Mongodb Rocksdb Replication Sharding)
Docker搭建MongoRocks副本分片集群 准备 依赖 安装 下载镜像 基本单实例 带配置的单实例 权限配置 docker参数解释 启动命令 rocksdb配置解释 查看启动日志 连接测试 ov ...
- 基于 Docker 的 Redis 高可用集群搭建(redis-sentinel)
前言 之前介绍了用docker来搭建redis主从环境,但这只是对数据添加了从库备份(主从复制),当主库down掉的时候,从库是不会自动升级为主库的,也就是说,该redis主从集群并非是高可用的. ...
- docker、docker-compose搭建redis哨兵,集群。
目录 注意坑: Redisson整合哨兵模式的坑: 1. 安装docker和docker-compose 2. docker-compose搭建redis哨兵模式(一主二从二哨兵) 2.1启动redi ...
- docker搭建mongodb高可用集群
docker搭建mongodb集群 参考资料: 基于 Docker 的 MongoDB 主从集群 http://www.imooc.com/article/details/id/258885 mong ...
- 分布式缓存——Redis高级彻底搞懂(Redis原理+主从+集群)
-- 基于Redis集群解决单机Redis存在的问题 一.Redis持久化 Redis有两种持久化方案: RDB持久化 AOF持久化 1.RDB持久化 RDB全称Redis Database Back ...
- 使用Docker搭建Elasticsearch6.8.6集群及设置集群用户密码
本文基于Docker镜像搭建Elasticsearch集群,集群搭建完成后设置集群用户密码,主要包含以下内容: 修改系统参数 安装docker和docker-compose 编写yml配置文件 获取集 ...
- 基于Docker-compose搭建Redis高可用集群-哨兵模式(Redis-Sentinel)
我们知道,Redis的集群方案大致有三种:1)redis cluster集群方案:2)master/slave主从方案:3)哨兵模式来进行主从替换以及故障恢复. sentinel系统可以监视一个或者多 ...
最新文章
- “一次性”小家电之死:互联网必是杀手
- 计算机图形学Web前端笔记-定位并移动到指定坐标点(two.js理论及实现)
- 2017.9.14 棘手的操作 思考记录
- Linux—磁盘和文件系统管理(二)
- C++ 从入门到入土(English Version)Section4: Random numbers + machine code
- win10正常上网但是网络图标显示无连接,无法开启热点
- 条码打印软件制作UDI标签教程
- Gartner首发中国数据库市场指南,巨杉数据库代表数据库领域厂商入选
- 通王CMS采集-TWCMS文章采集-通王CMS关键词采集伪原创发布详解
- java 开根号函数_java如何开根号?
- Hi3519内核配置uart串口
- T156基于51单片机LCD12864指针时钟Proteus设计、keil程序、c语言、源码、ds1302,电子时钟,62256
- web网页设计期末课程大作业~超高仿英雄联盟LOL游戏官网设计与实现(HTML+CSS+JavaScript)
- D盘需要管理员权限解决办法
- Java编程笔记17:I/O
- 算法-动态规划-RNA最大碱基对匹配问题C语言求解
- 微信公众号定位用户所在位置
- 傅里叶级数、傅里叶变换、短时傅里叶变换 公式
- lib lib32 lib64等lib文件夹的说明
- 想在互联网上年入百万,必须具备这两种能力!
热门文章
- springboot+JPARepository实现增删改查
- win10下zookeeper的下载以及安装
- CXF发布RestFul WebService和SOAP WebService
- IConfiguration的命令行解析
- MongoDB C#:如何将包含DateTime的JSON反序列化为正确的BsonDocument DateTime值
- 内连级元素有哪些_行内元素和块级元素都有哪些
- cubemx stm32 配置两个串口_STM32CubeMX系列教程5:串行通信(USART)
- python实现蒙特卡洛算法_用Python实现基于蒙特卡洛算法小实验
- python构造自定义数据包_pytorch中的自定义数据处理详解
- python写文件追加 按行追加_你真的会用python进行文件操作吗