Linux基于Docker的Redis主从复制、哨兵模式搭建
本教程基于CentOS7,开始本教程前,请确保您的Linux系统已安装Docker。
1.使用docker下载redis镜像
docker pull redis
安装完成后,使用docker images命令,查看是否安装成功

2.redis集群搭建
(1)使用以下命令启动3个Redis
docker run --name redis-node1 -p 6379:6379 -d docker.io/redis
docker run --name redis-node2 -p 6380:6380 -d docker.io/redis
docker run --name redis-node3 -p 6381:6381 -d docker.io/redis
(2)使用docker ps命令,查看是否启动成功

(3)分别使用 docker inspect 容器名字命令,查看3个Redis的Docker内网IP地址

在Networks栏,可以看见该容器的Docker内网IP地址

同理,查看redis-node2和redis-node3的Docker内网IP
(4)进入三个redis容器的内部
进入容器内部命令:docker exec -it 容器id/容器名称 /bin/bash
进入redis-node1内部:

(5)进入redis客户端
redis-cli

(6)测试对单个redis进行set值或get值

如果能set、get能成功,那么单个redis是没有问题的
接下来开始搭建主从复制的redis集群
3.主从复制搭建
(1)进入redis客户端后,使用 info replication 查看当前机器的角色
info replication

发现现在的redis-node1是master(主人),同理redis-node2和redis-node3也是master
现在我要将redis-node2和redis-node3变为slave(仆从)
(2)进入redis-node2容器,并进入客户端
1 docker exec -it redis-node2 /bin/bash
2 redis-cli
使用 SLAVEOF 172.17.0.1 6379 命令将redis-node2变为redis-node1的从结点,172.17.0.1是前面获取的redis-node1的容器内IP,6379是redis-node1的端口号

再使用 info replication查看当前机器角色

可以发现redis-node2已经变成redis-node1从结点了。
同理,进入redis-node3容器,并进入客户端,使用 SLAVEOF 172.17.0.1 6379 命令将redis-node3变为redis-node1的从结点。
我们再次进入redis-node1容器查看机器角色:

此时的redis-node1当中显示有两个从结点了。
(3)测试主从复制
我们在redis-node1 set一个数据,测试redis-node2和redis-node3能否获取该数据。
redis-node1容器中:

redis-node2容器中:

我们发现redis-node1的数据成功同步到了redis-node2中!我们再看redis-node3
redis-node3容器中:

同样成功了。
注意:主结点可以读写,从结点只能读不能写!

如图所示,从结点写数据会报错。
这样我们redis的主从复制就搭建完毕了。
主从复制虽然可以一定程度上增加resdis集群的可用性,但是如果主结点宕机我们需要手动为从结点指定新的主结点,这很不方便也不符合生产环境的需要,所以我们引入了哨兵模式。
4.配置redis哨兵
分别进入3台Redis容器内部,执行以下操作
首先,进入Docker容器内部:
进入三台redis容器:docker exec -it 容器id/容器名称 /bin/bash
更新依赖命令:apt-get update
安装vim命令:apt-get install -y vim
然后,编写Redis哨兵配置文件:
使用 cd / 命令,进入根目录
使用 vim sentinel.conf命令,创建哨兵配置文件
添加以下内容 sentinel monitor host6379 172.17.0.1 6379 1
最后,启动Redis哨兵:
使用 redis-sentinel /sentinel.conf 启动Redis哨兵监控
使用 ps –ef |grep redis 命令,可以看到redis-server和redis-sentinel正在运行
注意:三个redis容器都要执行上面的操作
完成后,哨兵会监视主结点状态,如果主结点宕机,30s后会从从结点当中选择一个作为主结点,如果后面原主结点重新连接,原主结点会变为新主结点的从结点。
至此,Linux基于Docker的Redis主从复制、哨兵模式搭建完毕。
Linux基于Docker的Redis主从复制、哨兵模式搭建的更多相关文章
- Redis进阶:Redis的哨兵模式搭建
Redis进阶:Redis的哨兵模式搭建 哨兵机制介绍 单机版的Redis存在性能瓶颈,Redis通过提高主从复制实现读写分离,提高了了Redis的可用性,另一方便也能实现数据在多个Redis直接的备 ...
- 基于 docker 的redis 主从+哨兵(快速部署)
很简单(字多的步骤见:http://www.cnblogs.com/vipzhou/p/8580495.html) 1.直接启动3个容器 docker network create --subnet ...
- 【Redis】Redis Sentinel 哨兵模式搭建
Redis Sentinel介绍 Redis Sentinel是Redis的官方高可用性解决方案 Redis Sentinel为Redis提供高可用性.实际上,这意味着使用Sentinel可以创建一个 ...
- 浅谈:redis的主从复制 + 哨兵模式
浅谈:redis的主从复制 + 哨兵模式 主从模式 在谈论redis的主从复制之前,我们先回想下mysql的主从搭建过程,第一步呢首先要在主库服务器中修改my.cnf,开启一下bin_log功能, ...
- Redis-Sentinel Redis的哨兵模式
Redis-Sentinel Redis的哨兵模式Redis Sentinel 模式简介Redis-Sentinel是官方推荐的高可用解决方案,当redis在做master-slave的高可用方案时, ...
- 【运维技术】redis(一主两从三哨兵模式搭建)记录
redis(一主两从三哨兵模式搭建)记录 目的: 让看看这篇文章的的人能够知道:软件架构.软件的安装.配置.基本运维的操作.高可用测试.也包含我自己,能够节省对应的时间. 软件架构: 生产环境使用三台 ...
- redis的哨兵模式
我是在一台服务器上安装了三个redis 一主两从 想安装gcc gcc-c++ make tcl lrzsz yum -y install gcc gcc-c++ make tcl lrzsz ...
- 基于Docker的Mysql主从复制
基于Docker的Mysql主从复制搭建 为什么基于Docker搭建? 资源有限 虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐 一台机器上可以运行多个Docker容器 Docker容器之间相 ...
- redis主从+redis的哨兵模式
三台机器分布 192.168.189.129 // master的角色 192.168.189.130 // slave1的角色 192.168.189.131 // salve2的角色 ...
随机推荐
- Flutter开发进阶学习指南Flutter开发进阶学习指南
Flutter 的起源 Flutter 的诞生其实比较有意思,Flutter 诞生于 Chrome 团队的一场内部实验, 谷歌的前端团队在把前端一些"乱七八糟"的规范去掉后,发现在 ...
- matlab快速入门
matlab快速入门 1矩阵 生成矩阵 % 直接法 a = [1,2,3;4,5,6;7,8,9]; % 冒号一维矩阵 a = 开始:步长:结束,步长为1可省略 b = 1:1:10; % 1,2 ...
- 结合场景使用Redis缓存与数据库同步
Redis缓存与MySQL数据库与同步 什么场景用到了Redis缓存? 1.广告数据 2.搜索时,分类品牌名称,分类名称和规格数据 3.购物车 4.支付 问题:如何实现? 1.广告数据 先查询Redi ...
- C++ 基于STL的演讲比赛流程管理系统(sort算法+小型算法(accumulate)+内建函数对象+string字符串拼接+字符串截取+多个容器基础操作+与用户交互+文件的读写+保存+重建+整体文件数据的清空)
1 /* 2 比赛规则: 3 学校举行一演讲比赛,共12个人参加,比赛两轮,第一轮为淘汰赛 第二轮为决赛 4 每名选手都有对应的编号:如10001~10012 5 比赛方式:分组比赛 每组6人 6 第 ...
- miniFTP项目实战二
项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务 ...
- 第一次上传代码到gitee
初始化 git init 添加文件到本地仓库 git add . 提交文件到本地仓库 git remote add origin 仓库地址 拉去远程仓库代码 git pull origin maste ...
- Docker创建Docker-Registry-私服
docker-compose.yml version: '3.1' services: registry: image: registry restart: always container_name ...
- ITIL学习笔记——ITIL入门小知识
1. 什么是ITIL? ITIL即IT基础架构库(Information Technology Infrastructure Library)由英国政府部门CCTA(Central Computing ...
- css生成彩色阴影
通常用css生成单色或者同色系的的阴影(box-shadow),其实可以通过巧妙的利用 filter: blur 模糊滤镜,可以生成渐变色或者说是颜色丰富的阴影效果,如图: 原理: 利用伪元素,生成一 ...
- C++基于ATL工程编写ActiveX控件步骤
参考网址: https://blog.csdn.net/whui19890911/article/details/8896554 开发环境:VS2010 开发工程:C++ATL项目 开发目的:创建Ac ...