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

使用Docker配置Redis Stack集群的步骤

准备工作

  • 安装Docker和Docker Compose:确保你的系统已安装Docker和Docker Compose,可通过docker --versiondocker-compose --version来验证是否安装成功。
  • 选择合适的Redis Stack镜像redis/redis-stack包含Redis Stack服务器和RedisInsight,适用于本地开发;redis/redis-stack-server仅提供Redis Stack服务器,适合生产部署。

创建配置文件

  • 创建redis.conf文件:为每个Redis节点创建一个配置文件,以下是示例配置:
    port <port>
    protected-mode no
    cluster-enabled yes
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    appendonly yes
    
    其中<port>需替换为每个节点对应的端口号,如6379、6380等。
  • 创建docker-compose.yml文件:定义Redis服务和集群配置,示例如下:
    version: '3.8'services:redis-master-1:image: redis/redis-stack-server:latestports:- "6379:6379"volumes:- ./redis-master-1.conf:/usr/local/etc/redis/redis.conf- redis-master-1-data:/dataredis-master-2:image: redis/redis-stack-server:latestports:- "6380:6379"volumes:- ./redis-master-2.conf:/usr/local/etc/redis/redis.conf- redis-master-2-data:/dataredis-master-3:image: redis/redis-stack-server:latestports:- "6381:6379"volumes:- ./redis-master-3.conf:/usr/local/etc/redis/redis.conf- redis-master-3-data:/dataredis-slave-1:image: redis/redis-stack-server:latestports:- "6382:6379"volumes:- ./redis-slave-1.conf:/usr/local/etc/redis/redis.conf- redis-slave-1-data:/dataredis-slave-2:image: redis/redis-stack-server:latestports:- "6383:6379"volumes:- ./redis-slave-2.conf:/usr/local/etc/redis/redis.conf- redis-slave-2-data:/dataredis-slave-3:image: redis/redis-stack-server:latestports:- "6384:6379"volumes:- ./redis-slave-3.conf:/usr/local/etc/redis/redis.conf- redis-slave-3-data:/datavolumes:redis-master-1-data:redis-master-2-data:redis-master-3-data:redis-slave-1-data:redis-slave-2-data:redis-slave-3-data:
    
    该配置创建了3个主节点和3个从节点,每个节点使用不同的端口,并将配置文件和数据目录挂载到容器中。

启动集群

  • 启动Docker Compose服务:在包含docker-compose.yml文件的目录下运行docker-compose up -d命令,Docker Compose会根据配置文件启动Redis集群。
  • 检查集群状态:使用docker ps命令查看所有Redis容器是否正常运行。

配置集群

  • 进入容器并创建集群:选择一个Redis主节点容器,进入容器内部,使用redis-cli工具创建集群,命令如下:
    docker exec -it <container_name> redis-cli --cluster create <ip1>:<port1> <ip2>:<port2> ... --cluster-replicas 1
    
    其中<container_name>是容器名称,<ip1>:<port1>等是各个Redis节点的IP地址和端口号,--cluster-replicas 1表示每个主节点有1个从节点。
  • 验证集群:连接到任意一个Redis节点,使用CLUSTER INFO命令查看集群信息,确认集群状态正常;使用CLUSTER NODES命令查看集群节点信息,确保所有节点都已正确加入集群。
http://www.xdnf.cn/news/1363879.html

相关文章:

  • Redis常规指令及跳表
  • 电子之路(一)酒店门锁主板-主板接线图和原理-东方仙盟
  • 8.25学习日志
  • Portswigger靶场之Blind SQL injection with conditional errorsPRACTITIONERLAB
  • 36 NoSQL 注入
  • 大模型微调 Prompt Tuning与P-Tuning 的区别?
  • Java多态大冒险:当动物们开始“造反”
  • leetcode-hot-100 (二分查找)
  • 实用电脑小工具分享,守护电脑隐私与提升效率21/64
  • LengthFieldBasedFrameDecoder 详细用法
  • excel 破解工作表密码
  • 无锁队列的设计与实现
  • 记一次 element-plus el-table-v2 表格滚动卡顿问题优化
  • 【学习记录】CSS: clamp、@scope
  • 一键编译安装zabbix(centos)
  • Go编写的轻量文件监控器. 可以监控终端上指定文件夹内的变化, 阻止删除,修改,新增操作. 可以用于AWD比赛或者终端应急响应
  • go-redis库使用总结
  • 跨语言统一语义真理及其对NLP深层分析影响
  • 人体工学优化:握力环直径 / 重量设计与便携性、握持舒适度的协同分析
  • Spring Security(第五篇):从单体到前后端分离 —— JSON 响应与处理器实战
  • 0826xd
  • QtExcel/QXlsx
  • 力扣82:删除排序链表中的重复元素Ⅱ
  • 《Password Guessing Using Large Language Models》——论文阅读
  • 离线可用的网络急救方案
  • JavaScript Intl.RelativeTimeFormat:自动生成 “3 分钟前” 的国际化工具
  • [React]Antd Select组件输入搜索时调用接口
  • 基于RFM模型的客户群体大数据分析及用户聚类系统的设计与实现
  • 【Flink】运行模式
  • 文献阅读笔记:KalmanNet-融合神经网络和卡尔曼滤波的部分已知动力学状态估计