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

docker-compose快速搭建redis集群

目录结构

redis-cluster/
├── config/
│   ├── master.conf
│   ├── slave1.conf
│   └── slave2.conf
└── docker-compose.yml

配置文件内容

1. config/master.conf
# Redis主节点配置
port 6379
bind 0.0.0.0
protected-mode no
logfile "redis-master.log"
dir /data
save 900 1
save 300 10
save 60 10000
2. config/slave1.conf
# Redis从节点1配置
port 6380
bind 0.0.0.0
protected-mode no
logfile "redis-slave1.log"
dir /data
slaveof redis-master 6379
3. config/slave2.conf
# Redis从节点2配置
port 6381
bind 0.0.0.0
protected-mode no
logfile "redis-slave2.log"
dir /data
slaveof redis-master 6379

docker-compose.yml

version: '3.8'services:# Redis主节点redis-master:image: redis:7.0container_name: redis-masterports:- "6379:6379"volumes:- ./config/master.conf:/usr/local/etc/redis/redis.conf- redis-data-master:/datacommand: ["redis-server", "/usr/local/etc/redis/redis.conf"]healthcheck:test: ["CMD", "redis-cli", "ping"]interval: 5stimeout: 5sretries: 5networks:- redis-network# Redis从节点1redis-slave1:image: redis:7.0container_name: redis-slave1ports:- "6380:6380"volumes:- ./config/slave1.conf:/usr/local/etc/redis/redis.conf- redis-data-slave1:/datacommand: ["redis-server", "/usr/local/etc/redis/redis.conf"]healthcheck:test: ["CMD", "redis-cli", "-p", "6380", "ping"]interval: 5stimeout: 5sretries: 5depends_on:- redis-masternetworks:- redis-network# Redis从节点2redis-slave2:image: redis:7.0container_name: redis-slave2ports:- "6381:6381"volumes:- ./config/slave2.conf:/usr/local/etc/redis/redis.conf- redis-data-slave2:/datacommand: ["redis-server", "/usr/local/etc/redis/redis.conf"]healthcheck:test: ["CMD", "redis-cli", "-p", "6381", "ping"]interval: 5stimeout: 5sretries: 5depends_on:- redis-masternetworks:- redis-networkvolumes:redis-data-master:redis-data-slave1:redis-data-slave2:networks:redis-network:driver: bridge

部署步骤

  1. 创建目录结构并添加上述配置文件

  2. 设置正确的文件权限(避免之前的权限问题)

chmod -R 644 config/
  1. 启动容器
docker-compose up -d
  1. 验证部署
# 检查容器状态
docker-compose ps# 连接到主节点查看信息
docker exec -it redis-master redis-cli info replication# 连接到从节点1查看信息
docker exec -it redis-slave1 redis-cli -p 6380 info replication# 连接到从节点2查看信息
docker exec -it redis-slave2 redis-cli -p 6381 info replication

测试主从复制

  1. 在主节点设置一个键值
docker exec -it redis-master redis-cli
127.0.0.1:6379> SET mykey "Hello from master"
OK
  1. 在从节点读取该键值
# 从节点1
docker exec -it redis-slave1 redis-cli -p 6380
127.0.0.1:6380> GET mykey
"Hello from master"# 从节点2
docker exec -it redis-slave2 redis-cli -p 6381
127.0.0.1:6381> GET mykey
"Hello from master"
http://www.xdnf.cn/news/14765.html

相关文章:

  • 容器基础5-Helm 与 K8s 的关系
  • 配置tcp的https协议证书
  • (第三篇)HMTL+CSS+JS-新手小白循序渐进案例入门
  • 【字节跳动】数据挖掘面试题0003:有一个文件,每一行是一个数字,如何用 MapReduce 进行排序和求每个用户每个页面停留时间
  • 《P4145 上帝造题的七分钟 2 / 花神游历各国》
  • Google Maps 安装使用教程
  • 客服机器人知识库怎么搭?智能客服机器人3种方案深度对比(含零售落地案例)
  • 【Linux】U-boot常用命令总结
  • 从UI设计到数字孪生实战部署:构建智慧农业的智能灌溉系统
  • 数学建模_图论
  • 桥岛隧大型工程 3D 可视化监测平台
  • 分布式定时任务:xxl-job
  • 洛谷刷题6
  • 拐点的可导性的图像区别
  • AlpineLinux安装部署zabbix
  • 【分明集合】特征函数、关系与运算
  • SpringBoot计时一次请求耗时
  • 应急响应类题练习——玄机第四章 windows实战-emlog
  • [创业之路-458]:企业经营层 - 蓝海战略 - 重构价值曲线、整合产业要素、创造新需求
  • Leetcode力扣解题记录--第49题(map)
  • [Python] -基础篇8-Python中的注释与代码风格PEP8指南
  • mac重复文件清理,摄影师同款清理方案
  • poi设置word表格边框
  • 修改Spatial-MLLM项目,使其专注于无人机航拍视频的空间理解
  • Flink Savepoints 总结
  • 一文详解Modbus协议原理、技术细节及软件辅助调试
  • 【甲方安全建设】敏感数据检测工具 Earlybird 安装使用详细教程
  • PyTorch 中 nn.Linear() 参数详解与实战解析(gpt)
  • 直线模组精度等级是如何划分的?
  • Python 数据分析与机器学习入门 (五):Matplotlib 数据可视化基础