前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker搭建Redis主从复制集群

Docker搭建Redis主从复制集群

作者头像
别团等shy哥发育
发布2023-02-25 15:12:49
8720
发布2023-02-25 15:12:49
举报
文章被收录于专栏:全栈开发那些事

Docker搭建Redis主从复制集群

1、简介

  在实际项目里,一般不会简单地只在一台服务器上部署Redis服务器,因为单台Redis服务器不能满足高并发的压力,另外如果该服务器或Redis服务器失效,整个系统就可能崩溃。   在主从复制的集群里,主节点一般是一个,从节点一般是两个或多个,写入主节点的数据会被复制到从节点上,这样一旦主节点出现故障,应用系统就能切换到从节点去读写数据,提升系统的可用性。再采用主从复制模式里默认的读写分离机制,就能提升系统的缓存读写性能。

2、主从复制模式概述

  在实际应用中,如果有响应的设置,在向一台Redis服务器里写数据后,这个数据可以复制到另一台(或多台)Redis服务器,这里数据源服务器叫主服务器(Master Server),复制数据目的地所在的服务器叫做从服务器(Slave Server)。   这种主从复制模式能带来两个好处:

  • 把写操作集中到主服务器上,把读操作集中到从服务器上,以提升读写性能。
  • 由于出现了备份,因此能提升数据库的安全性,比如当主Redis服务器失效后,能很快切换到从服务器上读数据。

关于主从复制模式请注意以下几点:

  • 一个主服务器可以带一个或多个从服务器,从服务器可以再带从服务器,但在复制数据时只能把主服务器的数据复制到从服务器上,反之不能。
  • 一台服务器只能跟随一台主服务器,不能出现一丛多主的模式。
  • 在Redis2.8以后的版本里,采用异步的复制模式,即进行主从复制时不会影响主服务器上的读写数据操作。

3、用命令方式搭建集群

  这里将介绍用Docker容器搭建一主二从模式的集群,在配置主从关系时,需要从节点上使用slaveof命令。

3.1 创建主服务器

  打开一个命令窗口,在其中运行如下命令创建一个名为redis-master的Redis容器。端口为6379

代码语言:javascript
复制
docker run -itd --name redis-master -p 6379:6379 redis:latest
在这里插入图片描述
在这里插入图片描述

3.2 创建第一个从服务器

  新建一个命令窗口,在其中运行如下命令创建一个名为redis-slave1的容器,它的端口是6380.这里是在一台电脑上运行,所以用端口号来区别一台主Redis容器和另外两台从Redis容器。在真实项目里,多台Redis会部署在不同的服务器上,所以可以都用6379端口。

代码语言:javascript
复制
docker run -itd --name redis-slave1 -p 6380:6380 redis:latest
在这里插入图片描述
在这里插入图片描述

3.3创建第二个从服务器

  新建一个命令窗口,在其中运行如下命令创建一个名为redis-slave2的容器

代码语言:javascript
复制
 docker run -itd --name redis-slave2 -p 6381:6381 redis:latest
在这里插入图片描述
在这里插入图片描述

3.4 查看redis-master容器信息

  回到包含redis-master容器的命令窗口,在其中运行docker inspect redis-master命令查看redis-master容器的信息,在其中能通过IPAddress项看到该容器的IP地址,这里是172.17.0.2。在真实项目里,Redis服务器所在的IP地址是固定的,而通过Docker容器启动的Redis服务器的IP地址是动态的,所以这里要用上述命来获取IP地址。

在这里插入图片描述
在这里插入图片描述

3.5 主从复制配置

  在redis-slave1容器的命令窗口里运行如下的slaveof命令,指定当前Redis服务器为从服务器。该命令的格式是slaveof IP端口号,这里指向172.17.0.2:6379所在的主服务器。

代码语言:javascript
复制
slaveof 172.17.0.2 6379
在这里插入图片描述
在这里插入图片描述

  在redis-slave2容器的命令窗口里运行如下的slaveof命令,指定当前Redis服务器为从服务器

在这里插入图片描述
在这里插入图片描述

3.6 通过info replication命令查看主从配置信息

redis-master容器中:

在这里插入图片描述
在这里插入图片描述

可以看到,role为master,connected_slaves有两台。 redis-slave1容器中:

在这里插入图片描述
在这里插入图片描述

redis-slave2容器中:

在这里插入图片描述
在这里插入图片描述

3.7 主从复制测试

在redis-master中设置个值set name 'Peter',再到从服务器上查看是否复制成功。 redis-master:

在这里插入图片描述
在这里插入图片描述

redis-slave1:

在这里插入图片描述
在这里插入图片描述

redis-slave2:

在这里插入图片描述
在这里插入图片描述

4、通过配置搭建主从集群

  在项目里除了可以用slaveof命令搭建主从模式的集群外,还可以用配置参数的方式来搭建,具体步骤如下:

4.1 三个配置文件

在这里插入图片描述
在这里插入图片描述

redisMaster.conf

在这里插入图片描述
在这里插入图片描述

redisMaster启动端口为6382 redisSlave1.conf

在这里插入图片描述
在这里插入图片描述

  第一行设置该redis的端口号为6383,第二行的slaveof配置把该Redis服务器设置成“从模式”,并链接额到redis-master1所在的服务器上。 redisSlave2.conf

在这里插入图片描述
在这里插入图片描述

redisSlave2端口为6384,并设置成redis-master1的从服务器

4.2 启动主服务器

代码语言:javascript
复制
 docker run -itd --privileged=true --name redis-master1 -v /root/redisconf/:/usr/local/etc/redis -p 6382:6382 redis:latest redis-server /usr/local/etc/redis/redisMaster.conf
在这里插入图片描述
在这里插入图片描述

4.3 启动两台从服务器

redis-slave11

代码语言:javascript
复制
docker run -itd --privileged=true --name redis-slave11 -v /root/redisconf/:/usr/local/etc/redis -p 6383:6383 redis:latest redis-server /usr/local/etc/redis/redisSlave1.conf
在这里插入图片描述
在这里插入图片描述

redis-slave22:

代码语言:javascript
复制
 docker run -itd --privileged=true --name redis-slave22 -v /root/redisconf/:/usr/local/etc/redis -p 6384:6384 redis:latest redis-server /usr/local/etc/redis/redisSlave2.conf
在这里插入图片描述
在这里插入图片描述

docker ps查看所有容器,如下图,上面三个容器是以配置文件形式启动的,下面那三个是直接以命令的方式配置的

在这里插入图片描述
在这里插入图片描述

4.4 查看主从配置信息

分别用客户端进入redis服务器,查看主从配置信息 redis-master1:

在这里插入图片描述
在这里插入图片描述

redis-slave11:

在这里插入图片描述
在这里插入图片描述

redis-slave22:

在这里插入图片描述
在这里插入图片描述

4.5 主从复制测试

在主服务器设置个值,再去从服务器查看

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

perfect

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Docker搭建Redis主从复制集群
  • 1、简介
  • 2、主从复制模式概述
  • 3、用命令方式搭建集群
    • 3.1 创建主服务器
      • 3.2 创建第一个从服务器
        • 3.3创建第二个从服务器
          • 3.4 查看redis-master容器信息
            • 3.5 主从复制配置
              • 3.6 通过info replication命令查看主从配置信息
                • 3.7 主从复制测试
                • 4、通过配置搭建主从集群
                  • 4.1 三个配置文件
                    • 4.2 启动主服务器
                      • 4.3 启动两台从服务器
                        • 4.4 查看主从配置信息
                          • 4.5 主从复制测试
                          相关产品与服务
                          云数据库 Redis
                          腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档