首页 > 数据库 >redis cluster集群部署(docker部署)

redis cluster集群部署(docker部署)

时间:2024-11-11 12:56:52浏览次数:1  
标签:部署 redis cluster 集群 26379 172.16 docker 4.78

1.集群说明

    三台测试机器172.16.4.78、172.16.4.79、172.16.4.80,做三主三从,请提前安装好docker以及docker-compose

槽位容器名称连接方式
172.16.4.78:26379 172.16.4.78:26380 0-5460 redis_26379、redis_26380 cluster集群只有0库 代理三个主库做轮询
172.16.4.79:26381 172.16.4.79:26382 5461-10922 redis_26381、redis_26382 cluster集群只有0库  
172.16.4.80:26283 172.16.4.80:26284 10923-16383 redis_26383、redis_26384 cluster集群只有0库  

 

2.部署步骤

1.依然使用基线redis配置文件、镜像,我的目录结构

172.16.4.78 /data/aibox-common/redis/26379、/data/aibox-common/redis/26380
172.16.4.79 /data/aibox-common/redis/26380、/data/aibox-common/redis/26382
172.16.4.80 /data/aibox-common/redis/26381、/data/aibox-common/redis/26384

2.redis.conf配置文件编辑(可以修改一份配置文件之后cp到其他机器上,只需要修改对应端口即可,其他内容都一致)

2.1修改部分

port 26379  #每台机器的主从都要根据分配的端口进行修改

...

port 26384

2.2增加部分

cluster-enabled yes  #启用集群模式
cluster-config-file  #nodes-26379.conf 或 nodes-26380.conf
cluster-node-timeout 5000  #连接超时

2.3启动容器

分别进入到3台服务器的redis目录启动redis容器,

如:(修改对应服务器sevice名称、容器名称、映射目录、端口等)

[root@localhost 26379]# cat docker-compose.yaml 
version: '3.9'
services:
  redis_26379:
    image: 172.16.11.17:48090/public/redis:6.0
    restart: always
    deploy:
      resources:
        limits:
          memory: '3G'
        reservations:
          memory: '2G'
    container_name: redis_26379
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /data/aibox-common/redis/26379/conf/redis.conf:/usr/local/etc/redis/redis.conf
      - /data/aibox-common/redis/26379/data:/data
    ports:
      - 26379:26379
    command: redis-server /usr/local/etc/redis/redis.conf
    network_mode: "host"

 

cd /data/aibox-common/redis/26379  && docker-compose up -d

 

2.4启动之后,每台服务器都有两个redis

2.5 创建redis集群

#在 172.16.4.78 上执行以下命令创建集群:

docker exec -it redis_26379 bash
redis-cli --cluster create --cluster-replicas 1 -a ytx@123 \
172.16.4.78:26379 172.16.4.78:26380 \
172.16.4.79:26381 172.16.4.79:26382 \
172.16.4.80:26383 172.16.4.80:26384  

 

#以上命令会安装先后顺序自己创建主从,如:172.16.4.78:26379 172.16.4.78:26380,第一个就是主数据库、第二个就是第一个的从数据库,--cluster-replicas 1此参数就是有一个从数据库,如果想设置多个从,可以修改此参数

#以上命令也会自动创建槽点,在集群创建成功后,可以使用命令查看

#查看槽点分布
127.0.0.1:26379> CLUSTER SLOTS
1) 1) (integer) 10923
2) (integer) 16383
3) 1) "172.16.4.80"
2) (integer) 26383
3) "1358076d4a4a8e23ea8a4a81dd26a3818d3c0978"
4) 1) "172.16.4.78"
2) (integer) 26380
3) "b688d5e791f974f31da75cc539bcb21485386208"
2) 1) (integer) 0
2) (integer) 5460
3) 1) "172.16.4.78"
2) (integer) 26379
3) "5488dcbe811b5ff4941804e9a81a72268c23578e"
4) 1) "172.16.4.79"
2) (integer) 26382
3) "c5c3a500059191cea6d69cf220823863588c30dc"
3) 1) (integer) 5461
2) (integer) 10922
3) 1) "172.16.4.79"
2) (integer) 26381
3) "08f108af8b3d67dc393f56289b346bb5f344fe7f"
4) 1) "172.16.4.80"
2) (integer) 26384
3) "c99621590e5ae2a476c1efee9da3d14e783cdc42"

#集群创建成功后,可以查看node节点

127.0.0.1:26379> cluster nodes
c99621590e5ae2a476c1efee9da3d14e783cdc42 172.16.4.80:26384@36384 slave 08f108af8b3d67dc393f56289b346bb5f344fe7f 0 1731297420762 3 connected
c5c3a500059191cea6d69cf220823863588c30dc 172.16.4.79:26382@36382 slave 5488dcbe811b5ff4941804e9a81a72268c23578e 0 1731297418755 1 connected
1358076d4a4a8e23ea8a4a81dd26a3818d3c0978 172.16.4.80:26383@36383 master - 0 1731297419000 5 connected 10923-16383
5488dcbe811b5ff4941804e9a81a72268c23578e 172.16.4.78:26379@36379 myself,master - 0 1731297419000 1 connected 0-5460
b688d5e791f974f31da75cc539bcb21485386208 172.16.4.78:26380@36380 slave 1358076d4a4a8e23ea8a4a81dd26a3818d3c0978 0 1731297418000 5 connected
08f108af8b3d67dc393f56289b346bb5f344fe7f 172.16.4.79:26381@36381 master - 0 1731297419758 3 connected 5461-10922

#集群创建成功后,可以查看集群信息

root@localhost:/data# redis-cli -p 26379 -a ytx@123
127.0.0.1:26379> cluster info

cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:463
cluster_stats_messages_pong_sent:470
cluster_stats_messages_sent:933
cluster_stats_messages_ping_received:465
cluster_stats_messages_pong_received:463
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:933

#cluster_state:ok  说明集群状态正常

#cluster_known_nodes:6 集群中已知的节点数量是 6 个。这包括主节点和从节点

#cluster_size:3 集群中的主节点数量为 3 个,表示集群中有 3 个节点负责数据存储。

 

#参考文档

https://blog.csdn.net/kenkao/article/details/130761155

 

标签:部署,redis,cluster,集群,26379,172.16,docker,4.78
From: https://www.cnblogs.com/Leonardo-li/p/18539480

相关文章

  • XXL-JOB docker 初始化
    一、因为xxl-job使用的是mysq数据库,所有在yaml文件中,需要优先启动mysqlversion:'3'services:mysql:image:mysql:8.0container_name:mysql8restart:alwaysenvironment:MYSQL_ROOT_PASSWORD:123456MYSQL_DATABASE:xxl_jobpo......
  • 开源 PHP 商城项目 CRMEB 二次开发和部署教程
    上篇文章给大家介绍了如何使用Sealos应用商店一键部署CRMEB开源商城系统,那速度真叫一个快啊,比宝塔快多了!但是有些读者还不满足于此,问我能不能边运行边改代码,而且还得用Cursor来改代码,改完了之后线上环境还得实时生效。。。对此我只能说,你小子是不是看上Cursor的牛马属性......
  • SpringBoot响应式企业官网开发2mutj 程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:用户,资讯信息,类型,产品信息,产品类型,招聘信息,招聘类型,投递信息开题报告内容一、研究背景与意义随着互联网技术的飞速发展,企业官网已成为展示企业......
  • [CKS] K8S Dockerfile和yaml文件安全检测
    最近准备花一周的时间准备CKS考试,在准备考试中发现有一个题目关于Dockerfile和yaml文件安全检测的题目。​专栏其他文章:[CKS]Create/Read/MountaSecretinK8S-CSDN博客[CKS]AuditLogPolicy-CSDN博客-[CKS]利用falco进行容器日志捕捉和安全监控-CSDN博客[CKS]......
  • SpringBoot线上学习系统的设计与实现kt003 本系统(程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:用户,讲师,学级分类,科目分类,语音课程,视频课程,语音课程购买,视频课程购买,语音课程发送,视频课程发送开题报告内容一、项目背景与意义随着互联网技......
  • 环境部署问题排查
    部署环境步骤后端修改资源文件路径、数据库名称、密码等信息后端打包后端配置文件——服务名称、日志地址前端,与后端的接口、资源文件路径、相对nginx的文件路径(这个一般和配置文件中的对应)打包部署配置文件——监听地址(端口),服务器名称,前端地址,后端接口、静态资......
  • Kali安装配置docker
    Kali安装配置dockerDocker概述:Docker是一种开源平台,可用于自动化应用程序的部署、扩展和管理。在KaliLinux上安装和配置Docker可以为开发人员和管理员提供更轻松的容器化环境。本文将介绍如何在KaliLinux中安装和配置Docker。更新换源:apt-getupdateapt-getu......
  • macOS 下使用 Docker 安装 ElasticSearch(学习环境用)
    当前环境操作系统:macOS15.0.1Docker版本:DockerDesktop:Version4.34.3(170107)DockerEngine:27.2.0安装步骤提示:此部署只为学习使用,没有挂载本地文件1、安装ElasticSearch#安装命令#1.1创建网络somenetwork用于docker间通讯dockernetworkcreateso......
  • Docker容器镜像打成tar包
    简述需求:用户要求分系统输出镜像tar包,上传zip包利用平台统一管理。利用docker容器保存镜像进行打包,在另一台服务上使用。利用Dockerfile来打tar包什么是Dockerfile?Dockerfile是一个文本文件,包含了构建Docker镜像的所有指令。Dockerfile是一个用来构建镜像的文本文件,文......
  • 基于SpringBoot+Vue+Uniapp微信小程序的医院预约挂号系统设计与实现(精选计算机毕业设
    文章目录1.前言2.详细视频演示3.文档参考3.1论文参考3.2流程设计图3.3数据库表结构设计3.4系统测试部分4.项目运行截图5.技术框架5.1后端采用SpringBoot框架5.2前端框架Vue6.选题推荐毕设案例8.系统测试8.1系统测试的目的8.2系统功能测试9.代码参考10......