当前位置: 首页 > article >正文

学习docker第四弹----安装redis集群大厂面试

docker目录

  • 3主3从redis集群配置
    • 关闭防火墙+启动docker后台服务器
    • 新建6个dockers容器redis实例
    • 进入容器redis-node-1并为6台机器构建集群关系
    • 链接进入6381作为切入点,查看集群状态
  • 主从容错切换迁移案列
    • 数据读写存储
    • 容错切换迁移

3主3从redis集群配置

关闭防火墙+启动docker后台服务器

关闭防火墙命令:

systemctl stop firewalld

启动docker后台服务器

sytemctl start docker

新建6个dockers容器redis实例

docker run -d --name redis-node-1 --net host --privileged=true -v /data/redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381
docker run -d --name redis-node-2 --net host --privileged=true -v /data/redis/share/redis-node-2:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382
docker run -d --name redis-node-3 --net host --privileged=true -v /data/redis/share/redis-node-3:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383
docker run -d --name redis-node-4 --net host --privileged=true -v /data/redis/share/redis-node-4:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384
docker run -d --name redis-node-5 --net host --privileged=true -v /data/redis/share/redis-node-5:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385
docker run -d --name redis-node-6 --net host --privileged=true -v /data/redis/share/redis-node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386

这里介绍一下各个参数的含义:

 --name表示容器的名字
 --net host 使用宿主机的IP和端口,默认
 --privileged=true 获取宿主机root的用户权限
 -v /data/redis/share/redis-node-6:/data 表示容器卷,宿主机地址:docker内部地址
 redis:6.0.8 表示redis镜像和版本号
 --cluster-enabled yes 开启redis集群
 --appendonly yes 表示开启持久化
 --port 6386 表示redis的端口号

进入容器redis-node-1并为6台机器构建集群关系

docker exec -it redis-node-1 /bin/bash

在宿主机中,执行ifconfig来查看主机的ip

redis-cli --cluster create 自己的ip地址:6381 自己的ip地址:6382 自己的ip地址:6383 自己的ip地址:6384 自己的ip地址:6385 自己的ip地址:6386 --cluster-replicas 1
--cluster-replicas 1 表示为每一个master创建一个slave节点

链接进入6381作为切入点,查看集群状态

redis-cli -p 6381
cluster info
cluster nodes

主从容错切换迁移案列

数据读写存储

启动6机构成的集群并通过exec进入

docker exec -it redis-node-1 /bin/bash
redis-cli -p 6381

对6381新增几个key

set k1 v1
set k2 v2
set k3 v3
set k4 v4

防止路由失效加参数-c并新增两个key

redis-cli -p 6381 -c
flushall
set k1 v1
set k2 v2
set k3 v3
set k4 v4

查看集群信息

redis-cli --cluster check 自己的ip地址:6381

容错切换迁移

为什么需要主设备和从设别呢,因为害怕机器出现故障,有从设备的存在,我们就可以有容错性,让故障的损失降到最小
首先让6381宕机

docker stop redis-node-1

再次根据之前的步骤查看集群中节点的关系,不难发现,1节点的slave变成了master
然后我们再关闭5节点,启动1节点

docker stop redis-node-5
docker start redis-node-1

会发现1成为了master
接着启动5节点
又回到了开始的状态,1节点是5节点的主节点

最后,我们再查看一下集群的状态

edis-cli --cluster check 自己IP:6381

http://www.kler.cn/news/331608.html

相关文章:

  • 灰度重心法求取图像重心
  • Updates were rejected because the tip of your current branch is behind 的解决方法
  • (功能测试)熟悉web项目及环境 测试流程
  • SQL Server—T-sql聚合函数详解
  • 如何在银河麒麟高级服务器操作系统V10搭建虚拟机管理器?
  • Django学习笔记八:发布RESTful API
  • 【数据结构与算法】LeetCode:堆和快排
  • 深入浅出MongoDB(二)
  • 网络编程-TCP
  • 关于Elastic Search与MySQL之间的数据同步
  • 二、MySQL的数据目录
  • 16.数据结构与算法-串,数组与广义表(串,BF算法,KMP算法)
  • linux第二课:常用命令
  • 828华为云征文|使用Flexus X实例创建FDS+Nginx服务实现图片上传功能
  • 微服务(二)
  • Electron 主进程与渲染进程、预加载preload.js
  • 使用rust实现rtsp码流截图
  • Stable Diffusion绘画 | 来训练属于自己的模型:秋叶训练器使用
  • 爬虫——爬取小音乐网站
  • 土地规划中的公共设施布局:科学规划,赋能土地高效利用的艺术