多台服务器上docker部署 Redis 集群

  1. 规划集群节点
    确保你的服务器有固定 IP,比如:
    172.16.17.100
    172.16.17.101
    172.16.17.102
    每台服务器运行 2 个 Redis 节点,总共 6 个节点,满足 Redis Cluster 最小节点数要求。
2. 在每台服务器上运行 Redis
在每台服务器上执行以下命令(调整 CLUSTER_ANNOUNCE_IP 为本机 IP):```bash
docker run -d --name redis-7000 -e CLUSTER_ANNOUNCE_IP=172.16.17.100 \-p 7000:7000 -p 17000:17000 \registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/redis-cluster:4.0docker run -d --name redis-7001 -e CLUSTER_ANNOUNCE_IP=172.16.17.100 \-p 7001:7001 -p 17001:17001 \registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/redis-cluster:4.0
在 172.16.17.101 执行:```bash
docker run -d --name redis-7002 -e CLUSTER_ANNOUNCE_IP=172.16.17.101 \-p 7002:7002 -p 17002:17002 \registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/redis-cluster:4.0docker run -d --name redis-7003 -e CLUSTER_ANNOUNCE_IP=172.16.17.101 \-p 7003:7003 -p 17003:17003 \registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/redis-cluster:4.0

在 172.16.17.102 执行:

docker run -d --name redis-7004 -e CLUSTER_ANNOUNCE_IP=172.16.17.102 \-p 7004:7004 -p 17004:17004 \registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/redis-cluster:4.0docker run -d --name redis-7005 -e CLUSTER_ANNOUNCE_IP=172.16.17.102 \-p 7005:7005 -p 17005:17005 \registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/redis-cluster:4.0
  1. 初始化 Redis Cluster
    在任意一台服务器上执行(推荐在 172.16.17.100):
docker exec -it redis-7000 redis-cli --cluster create \172.16.17.100:7000 172.16.17.100:7001 \172.16.17.101:7002 172.16.17.101:7003 \172.16.17.102:7004 172.16.17.102:7005 \--cluster-replicas 1

说明:
–cluster-replicas 1:每个主节点分配 1 个从节点。

如果提示 (type ‘yes’ to accept),请输入 yes 确认集群初始化。

  1. 验证 Redis 集群
    执行以下命令,检查集群状态:
docker exec -it redis-7000 redis-cli -c -p 7000

然后输入:

cluster nodes

确保每个节点的状态为 master 或 slave,并且 connected。

  1. Spring Boot 配置
    在 application.yml 里配置:
spring:redis:cluster:nodes:- 172.16.17.100:7000- 172.16.17.100:7001- 172.16.17.101:7002- 172.16.17.101:7003- 172.16.17.102:7004- 172.16.17.102:7005
  1. 允许防火墙访问
    如果你使用 iptables 或 firewalld,确保开放 7000-7005 和 17000-17005 端口:
firewall-cmd --zone=public --add-port=7000-7005/tcp --permanent
firewall-cmd --zone=public --add-port=17000-17005/tcp --permanent
firewall-cmd --reload

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/74269.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Pandas】pandas DataFrame dtypes

Pandas2.2 DataFrame Attributes and underlying data 方法描述DataFrame.index用于获取 DataFrame 的行索引DataFrame.columns用于获取 DataFrame 的列标签DataFrame.dtypes用于获取 DataFrame 中每一列的数据类型 pandas.DataFrame.dtypes pandas.DataFrame.dtypes 属性用…

如何实现局域网内无痛访问Jupyter Notebook?

Jupyter Notebook是数据科学和机器学习领域非常常用的交互式开发环境。默认情况下,Jupyter Notebook启动后只能本地访问,并且会自动生成一个token用于身份验证。当需要从其他电脑远程访问时,往往需要对配置进行修改。 本文将详细介绍如何通过…

[Windows] eDiary 4.3.6 日记软件

[Windows] eDiary 链接:https://pan.xunlei.com/s/VOMq6xmKTbEJtNaW-BXZ7KKSA1?pwdcrvu# 【应用功能】 加密 无论本地还是云端,都可以选择高强度加密。系统以用户密码为种子,对数据进行…

掌握 Flexbox 布局:为容器添加竖向滚动条的完美方案

掌握 Flexbox 布局:为容器添加竖向滚动条的完美方案 前言 在现代网页设计中,Flexbox 布局因其灵活性和强大的对齐功能而备受欢迎。然而,在实际开发过程中,我们有时会遇到需要在一个具有最小高度的 Flex 容器中实现内容溢出时显示…

Node.js v22.14.0 多平台安装指南:Windows、Linux 和 macOS 详细教程

Node.js作为现代Web开发的基石,持续为开发者带来性能提升和新特性支持。本文将详细介绍在Windows、macOS和Linux系统上安装最新Node.js的多种方法,助您快速搭建高效的JavaScript开发环境。 📦 当前最新版本 截至2025年4月,Node.…

动态规划学习——回文子串系列问题【C++】

一,回文子串 题目链接:LCR 020. 回文子串 - 力扣(LeetCode) 【问题描述】 求一个字符串中有多少个回文子串,其中一个字符也算是一个回文子串。 【解法】 动态规划 求一个字符串中回文子串的个数,我么可…

My first day in QT programming

My first QT code this->setWindowTitle("HelloWorld"); //设置窗口名称 this->resize(400, 300); //设置窗口大小 QPushButton* btn new QPushButton; //新建按钮组件 btn->setParent(this); //为按钮指定父对象 …

基于python开发的邮箱合并群发工具

智能邮件群发系统 一个基于Python和PyQt5开发的智能邮件群发工具,支持Word模板和Excel数据源的自动匹配,具有现代化UI界面和友好的用户体验。 Github项目地址:https://github.com/liugang926/Auto-mail-sent.git dist目录有编译好的exe程序&…

大模型-提示词(Prompt)技巧

1、什么是提示词? 提示词(Prompt)是用户发送给大语言模型的问题、指令或请求,用来明确地告诉模型用户想要解决的问题或完成的任务,是大语言模型理解用户需求并据此生成相关、准确回答或内容的基础。对于大语言模型来说…

Android开发:support.v4包与AndroidX

Android中的support.v4包与AndroidX support.v4包概述 Android Support Library中的android.support.v4包是Google为保持Android应用向后兼容而提供的重要支持库集合。它主要解决以下问题: API版本兼容:让新版API能在旧版Android系统上使用功能增强&a…

TCP-IP模型

书接上回(OSI通信模型) TCP-IP协议结构 (略讲) ARP:IP-->MAC RARP:MAC-->IP ICMP:控制报文信息协议,主要是涉及到主机就去连接路由器时控制传输报文&#xff08…

雪花算法生成的主键存在哪些问题,为什么不能使用自增ID或者UUID做MySQL的主键

MySQL 分布式架构中的主键选择:自增ID、UUID与雪花算法 为什么MySQL分布式架构中不能使用自增主键? 在分布式架构中,自增主键存在以下问题: 主键冲突风险:多个数据库实例同时生成自增主键会导致ID重复分片不均匀&am…

RapidJSON 处理 JSON(高性能 C++ 库)(四)

第四部分:RapidJSON 处理 JSON(高性能 C++ 库) 📢 快速掌握 JSON!文章 + 视频双管齐下 🚀 如果你觉得阅读文章太慢,或者更喜欢 边看边学 的方式,不妨直接观看我录制的 RapidJSON 课程视频!🎬 视频里会用更直观的方式讲解 RapidJSON 的核心概念、实战技巧,并配有…

chromem-go + ollama + bge-m3 进行文档向量嵌入和查询

Ollama 安装 https://ollama.com/download Ollama 运行嵌入模型 bge-m3:latest ollama run bge-m3:latestchromem-go 文档嵌入和查询 package mainimport ("context""fmt""runtime""github.com/philippgille/chromem-go" )func ma…

【LeetCode 题解】数据库:180. 连续出现的数字

一、问题描述 给定一个Logs表,包含自增 ID 和数字字段: CREATE TABLE Logs (id INT PRIMARY KEY AUTO_INCREMENT,num VARCHAR(50) );要求编写 SQL 查询,找出所有至少连续出现三次的数字。例如: --------- | id | num | -------…

MaxEnt模型进阶:基于R语言自动化与GIS空间建模的物种栖息地精准预测

生物多样性的空间分布规律及其对环境变化的响应机制,是生态学与地理学研究的前沿议题。在气候变化加剧和人类活动干扰的双重压力下,如何精准预测物种潜在分布范围、识别关键环境驱动因子,已成为制定生物保护策略的核心科学问题。物种分布模型…

缓存雪崩解决方案:二级缓存VS随机TTL

背景 在学习缓存雪崩的时候,了解到有二级缓存和随机TTL两个解决方案,但是在学习之后,个人认为二级缓存本质上还是利用两层缓存的过期时间不一致来实现缓存过期时间随机化,这不就是和随机TTL一样吗,故有了这篇思考&…

Android View事件分发机制深度解析

在Android面试中,关于View事件分发机制的考察往往不仅限于基础流程,更关注底层原理、性能优化和实际应用场景。以下是针对面试的全面回答策略: 一、基础回答框架 核心三要素: 传递流程 "事件分发遵循Activity → Window →…

2829. k-avoiding 数组的最小总和

2829. k-avoiding 数组的最小总和 题目链接:2829. k-avoiding 数组的最小总和 代码如下: class Solution { public:int minimumSum(int n, int k) {int m min(k / 2, n);return (m * (m 1) (k * 2 n - m - 1) * (n - m)) / 2;} };

phpStorm2021.3.3在windows系统上配置Xdebug调试

开始 首先根据PHP的版本下载并安装对应的Xdebug扩展在phpStorm工具中找到设置添加服务添加php web page配置完信息后 首先根据PHP的版本下载并安装对应的Xdebug扩展 我使用的是phpStudy工具,直接在php对应的版本中开启xdebug扩展, 并在php.ini中添加如下…