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

部署Redis集群

部署Redis Cluster集群

1.先在虚拟机上安装redis

cd /usr/local wget https://download.redis.io/releases/redis-6.2.18.tar.gz tar -zxvf redis-6.2.18.tar.gz cd redis-6.2.18 make && make install

2.创建目录

mkdir -p /redis-cluster/{7001,7002,7003,7004,7005,7006}

3.部署节点

cat > /redis-cluster/7001/redis.conf <<EOF bind 0.0.0.0 port 7001 daemonize yes pidfile /var/run/redis_7001.pid logfile /redis-cluster/7001/redis.log dir /redis-cluster/7001 cluster-enabled yes cluster-config-file nodes-7001.conf cluster-node-timeout 5000 appendonly yes protected-mode no EOF
cat > /redis-cluster/7002/redis.conf <<EOF bind 0.0.0.0 port 7002 daemonize yes pidfile /var/run/redis_7002.pid logfile /redis-cluster/7002/redis.log dir /redis-cluster/7002 cluster-enabled yes cluster-config-file nodes-7002.conf cluster-node-timeout 5000 appendonly yes protected-mode no EOF
cat > /redis-cluster/7003/redis.conf <<EOF bind 0.0.0.0 port 7003 daemonize yes pidfile /var/run/redis_7003.pid logfile /redis-cluster/7003/redis.log dir /redis-cluster/7003 cluster-enabled yes cluster-config-file nodes-7003.conf cluster-node-timeout 5000 appendonly yes protected-mode no EOF
cat > /redis-cluster/7004/redis.conf <<EOF bind 0.0.0.0 port 7004 daemonize yes pidfile /var/run/redis_7004.pid logfile /redis-cluster/7004/redis.log dir /redis-cluster/7004 cluster-enabled yes cluster-config-file nodes-7004.conf cluster-node-timeout 5000 appendonly yes protected-mode no EOF
cat > /redis-cluster/7005/redis.conf <<EOF bind 0.0.0.0 port 7005 daemonize yes pidfile /var/run/redis_7005.pid logfile /redis-cluster/7005/redis.log dir /redis-cluster/7005 cluster-enabled yes cluster-config-file nodes-7005.conf cluster-node-timeout 5000 appendonly yes protected-mode no EOF
cat > /redis-cluster/7006/redis.conf <<EOF bind 0.0.0.0 port 7006 daemonize yes pidfile /var/run/redis_7006.pid logfile /redis-cluster/7006/redis.log dir /redis-cluster/7006 cluster-enabled yes cluster-config-file nodes-7006.conf cluster-node-timeout 5000 appendonly yes protected-mode no EOF

4.逐个启动

redis-server /redis-cluster/7001/redis.conf redis-server /redis-cluster/7002/redis.conf redis-server /redis-cluster/7003/redis.conf redis-server /redis-cluster/7004/redis.conf redis-server /redis-cluster/7005/redis.conf redis-server /redis-cluster/7006/redis.conf

5.启动后,检查进程是否存在

ps -ef | grep redis-server

6.部署集群(等待后输入yes)

redis-cli --cluster create \ 192.168.199.115:7001 \ 192.168.199.115:7002 \ 192.168.199.115:7003 \ 192.168.199.115:7004 \ 192.168.199.115:7005 \ 192.168.199.115:7006 \ --cluster-replicas 1

7.验证集群

redis-cli -c -h 192.168.199.115 -p 7001 cluster info

从图可看出是 3 主 3 从结构

8.关闭集群

建议在关闭虚拟机前,先执行

redis-cli -c -h 192.168.199.115 -p 7001 shutdown redis-cli -c -h 192.168.199.115 -p 7002 shutdown redis-cli -c -h 192.168.199.115 -p 7003 shutdown redis-cli -c -h 192.168.199.115 -p 7004 shutdown redis-cli -c -h 192.168.199.115 -p 7005 shutdown redis-cli -c -h 192.168.199.115 -p 7006 shutdown

9.再重新启动执行第四步即可

10.删除集群

1.先关闭所有节点进程,步骤八

2.再删除集群目录和相关文件

# 删除整个集群目录 rm -rf /redis-cluster # 删除可能残留的pid文件 rm -f /var/run/redis_700*.pid

3.清理日志和持久化文件(可选)

# 清理日志(如果日志路径在别处) rm -f /var/log/redis_*.log # 清理持久化文件(如果dir配置在别处) rm -f /var/lib/redis/*.rdb /var/lib/redis/*.aof

11.要想能让自己连接上,还要在部署完成后输入以下指令(开放防火墙端口)

firewall-cmd --permanent --add-port=7001-7006/tcp firewall-cmd --permanent --add-port=17001-17006/tcp firewall-cmd --reload

用docker部署Redis集群

有问题docker不能用参考:https://blog.csdn.net/2302_80248454/article/details/158775162?fromshare=blogdetail&sharetype=blogdetail&sharerId=158775162&sharerefer=PC&sharesource=2402_85101298&sharefrom=from_link

1.创建目录

mkdir -p /opt/redis-cluster/{node1,node2,node3,node4,node5,node6} cd /opt/redis-cluster

2.为每个节点创建配置文件

cat > node1/redis.conf << EOF port 7001 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes protected-mode no daemonize no bind 0.0.0.0 EOF
for i in {2..6}; do sed "s/7001/700$i/" node1/redis.conf > node$i/redis.conf done

3.编写docker-compose.yaml文件

vi docker-compose.yaml
version: '3.8' services: redis-node1: image: redis:7 container_name: redis-node1 ports: - "7001:7001" - "17001:17001" volumes: - ./node1/redis.conf:/etc/redis/redis.conf - ./node1/data:/data command: redis-server /etc/redis/redis.conf networks: redis-cluster-net: ipv4_address: 172.20.0.2 redis-node2: image: redis:7 container_name: redis-node2 ports: - "7002:7002" - "17002:17002" volumes: - ./node2/redis.conf:/etc/redis/redis.conf - ./node2/data:/data command: redis-server /etc/redis/redis.conf networks: redis-cluster-net: ipv4_address: 172.20.0.3 redis-node3: image: redis:7 container_name: redis-node3 ports: - "7003:7003" - "17003:17003" volumes: - ./node3/redis.conf:/etc/redis/redis.conf - ./node3/data:/data command: redis-server /etc/redis/redis.conf networks: redis-cluster-net: ipv4_address: 172.20.0.4 redis-node4: image: redis:7 container_name: redis-node4 ports: - "7004:7004" - "17004:17004" volumes: - ./node4/redis.conf:/etc/redis/redis.conf - ./node4/data:/data command: redis-server /etc/redis/redis.conf networks: redis-cluster-net: ipv4_address: 172.20.0.5 redis-node5: image: redis:7 container_name: redis-node5 ports: - "7005:7005" - "17005:17005" volumes: - ./node5/redis.conf:/etc/redis/redis.conf - ./node5/data:/data command: redis-server /etc/redis/redis.conf networks: redis-cluster-net: ipv4_address: 172.20.0.6 redis-node6: image: redis:7 container_name: redis-node6 ports: - "7006:7006" - "17006:17006" volumes: - ./node6/redis.conf:/etc/redis/redis.conf - ./node6/data:/data command: redis-server /etc/redis/redis.conf networks: redis-cluster-net: ipv4_address: 172.20.0.7 networks: redis-cluster-net: driver: bridge ipam: config: - subnet: 172.20.0.0/16

4.启动所有容器(该过程会自动拉取镜像)

docker compose up -d

5.初始化 Redis 集群

输入以下命令进入任意一个容器

docker exec -it redis-node1 /bin/bash

执行集群创建命令

redis-cli --cluster create \ 172.20.0.2:7001 \ 172.20.0.3:7002 \ 172.20.0.4:7003 \ 172.20.0.5:7004 \ 172.20.0.6:7005 \ 172.20.0.7:7006 \ --cluster-replicas 1

当提示Can I set the above configuration? (type 'yes' to accept):时,输入yes确认。

如图即为成功

6.停止集群

要先exit退出容器

docker compose down

7.再次启动集群执行步骤四

http://www.jsqmd.com/news/450206/

相关文章:

  • 如何将OpenClaw部署到本地并配置企业微信?
  • Flutter 三方库 layerx_generator 的鸿蒙化适配指南 - 掌控代码模型资产、精密架构治理实战、鸿蒙级生成专家
  • Temu跨境电商怎么做:2026年3月从0到1实操指南
  • 收藏 | AI新手/程序员必看:轻松入门大模型与AI Agents,开启智能新篇章!
  • 《深度拆解:高通 Fastboot 刷机脚本及核心分区功能详解》
  • 基于Java springboot高校门诊管理系统挂号药品出入库(源码+文档+运行视频+讲解视频)
  • 2026金三银四转行网络安全,应该选哪个方向?
  • 交错并联Boost PFC仿真电路模型,控制方法采用输出电压外环,电感电流内环的双闭环PI控制...
  • LeetCode 1888 使二进制字符串交替的最少翻转次数
  • Seata 系列-1:基础概念
  • 论文写作新神器:书匠策AI,文献综述的“智慧魔法师”
  • Transformer进阶技术全景解析系列(第一篇:高效注意力机制——让Transformer“轻装上阵”)
  • 生物钟编码:基因定制开发效率表
  • 基于Java Swing + MySQL的学生住宿管理系统的设计与实现
  • 基于Java springboot高校洗浴预约管理系统(源码+文档+运行视频+讲解视频)
  • electron 安装教程
  • 基于Java springboot高校科研信息管理系统(源码+文档+运行视频+讲解视频)
  • 啪嗒一声按下空格键,Simulink模型开始跑起来了。显示器上跳动的波形让我突然想起刚接触下垂控制时被交叉耦合支配的恐惧——直到发现解耦控制这剂良药
  • 性能优化在测试资源节约中的价值实现
  • 电动汽车备用能力的市场机制分析与策略优化:实例探讨充电合约、电价响应及市场设计的影响
  • PCB双色油墨评测 打样哪家效果好
  • 当测试文档遭遇Z世代:质量保障体系的代际冲突与重构
  • 基于Python+ai技术的地铁导航旅游小程序
  • 能源AI跨界:电网优化算法开发速成——软件测试从业者的技术迁移指南
  • 探秘书匠策AI:文献综述写作的“智慧魔法棒”
  • 业务开发SOP
  • 是德科技33522B 33621A 33612A 33622A 33611A函数信号发生器
  • 2025最新贴片电容亲测信赖企业
  • 棋牌游戏平台系统架构分析——基于 C++ MFC 的分布式游戏服务器
  • 电力电子技术前沿:Matlab模型展示逆变技术中的电压型单相半桥、全桥逆变电路,展示波形图可应...