Windows本地搭建Redis集群(集群模式)
手打不易,如果转摘,请注明出处!
注明原文:https://blog.csdn.net/q258523454/article/details/144477957
前言
Redis版本:redis 5.0.14.1
Windows版本:Windows10
本文只讲集群模式
1. 安装Redis
1.1 下载
https://github.com/tporadowski/redis/releases

1.2 解压
解压到任意目录,例如:E:\Program Files (x86)\redis5.0.14.1
2. 集群配置准备
2.1 创建集群目录
创建一个目录,名字随意,例如: cluster

由于Redis集群模式,一般需要6个节点。假设我们要创建的集群节点的端口分别为:
7001、7002、7003、7004、7005、7006.
我们先创建7001节点,如图所示先在cluster目录下,创建一个名为7001的目录.

我们把下载的redis再解压(或者拷贝)一次,本文这里下载的版本是:Redis-x64-5.0.14.1.zip,重新再这里解压一次。注意:cluster目录的上一层,已经是解压了的,只是这里在做一次同样的操作。
得到如下目录:

2.2 修改节点配置
打开目录:E:\Program Files (x86)\redis5.0.14.1\cluster\7001 下的配置文件:redis.windows.conf
修改或新增以下内容:
注意:
① requirepass 和 masterauth 是密码,可以不设置,看自己需要
② requirepass 和 masterauth 需要同时设置,否则下次启动会报错:MASTER aborted replication with an error: NOAUTH Authentication required,原因可以参考:Link
port 7001
cluster-enabled yes
cluster-config-file nodes-7001.conf
cluster-node-timeout 15000requirepass 123456
masterauth 123456
2.3 新增start.bat
在目录:E:\Program Files (x86)\redis5.0.14.1\cluster\7001 新增bat文件,方便启动

start.bat 内容如下:
title redis-7001
redis-server.exe redis.windows.conf
此时,第一个集群节点7001,配置完成。
我们可以双击 start.bat 看是否正常启动.

2.4 创建其他5个节点
我们直接拷贝7001目录,拷贝命名为7002、7003、7004、7005、7006

分别修改对应的配置文件 redis.windows.conf
注意:下面的配置,700X,在不同目录下改成对应的7002、7003、7004、7005、7006
port 700X
cluster-enabled yes
cluster-config-file nodes-700X.conf
cluster-node-timeout 15000requirepass 123456
masterauth 123456
分别修改对应的启动bat文件 start.bat
注意:下面的配置,700X,在不同目录下改成对应的7002、7003、7004、7005、7006
title redis-700X
redis-server.exe redis.windows.conf
至此,6个集群节点的配置,全部准备完毕!
3. 启动集群
3.1 启动6个节点
首先,我们启动这6个节点。
方式1:对每个节点手动启动 (不推荐)
redis-server.exe redis.windows.conf
方式2:执行每个目录下的 start.bat (不推荐)
方式3:写一个批量的bat,一次性启动

例如,bat文件名为:run_cluster_7001_7006.bat
命令如下:
@echo off
setlocalrem 获取脚本所在的目录作为父目录
set "parent_directory=%~dp0"rem 遍历父目录下的每个子目录
for /d %%D in ("%parent_directory%*") do (rem 检查子目录是否包含 start.bat 文件if exist "%%~D\start.bat" (rem 进入子目录并运行 start.batpushd "%%~D"start start.batpopd)
)endlocal
保存后,双击即可执行。

3.2 启动集群模式
节点都启动后,节点界面会显示:Ready to accept connections
意思是需要我们启动集群模式。
启动命令是:
注意:如果没有密码,去掉“-a 123456”
redis-cli.exe -a 123456 --cluster create --cluster-replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006
假如我们用下面这个 redis-cli.exe 启动

打开CMD命令,输入 “E:”,切换磁盘。注意冒号是英文格式。
E:
cd 到指定目录:
E:\Program Files (x86)\redis5.0.14.1
执行命令,注意redis-cli.exe前面没有 ./
redis-cli.exe -a 123456 --cluster create --cluster-replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006
CMD界面执行如图所示:
E:\Program Files (x86)\redis5.0.14.1>redis-cli.exe -a 123456 --cluster create --cluster-replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 127.0.0.1:7005 to 127.0.0.1:7001
Adding replica 127.0.0.1:7006 to 127.0.0.1:7002
Adding replica 127.0.0.1:7004 to 127.0.0.1:7003
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: 25e19e328a37fd52b671f00c0a9d87111d514487 127.0.0.1:7001slots:[0-5460] (5461 slots) master
M: 5f93a0d2fb64fb182fe22b8d8a75c4af6007eec5 127.0.0.1:7002slots:[5461-10922] (5462 slots) master
M: d6d27d2be5a257f84b393104b9eb31014be95d0d 127.0.0.1:7003slots:[10923-16383] (5461 slots) master
S: aeca57ee8f3c1dba4f04223ebbe44701853db324 127.0.0.1:7004replicates 5f93a0d2fb64fb182fe22b8d8a75c4af6007eec5
S: 0964ae11a4bf4e924bd52f35e0e9e9961d471236 127.0.0.1:7005replicates d6d27d2be5a257f84b393104b9eb31014be95d0d
S: b9755b7d45c2d794743666ccb3a70f34979857de 127.0.0.1:7006replicates 25e19e328a37fd52b671f00c0a9d87111d514487
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join>>> Performing Cluster Check (using node 127.0.0.1:7001)
M: 25e19e328a37fd52b671f00c0a9d87111d514487 127.0.0.1:7001slots:[0-5460] (5461 slots) master1 additional replica(s)
S: 0964ae11a4bf4e924bd52f35e0e9e9961d471236 127.0.0.1:7005slots: (0 slots) slavereplicates d6d27d2be5a257f84b393104b9eb31014be95d0d
M: 5f93a0d2fb64fb182fe22b8d8a75c4af6007eec5 127.0.0.1:7002slots:[5461-10922] (5462 slots) master1 additional replica(s)
M: d6d27d2be5a257f84b393104b9eb31014be95d0d 127.0.0.1:7003slots:[10923-16383] (5461 slots) master1 additional replica(s)
S: b9755b7d45c2d794743666ccb3a70f34979857de 127.0.0.1:7006slots: (0 slots) slavereplicates 25e19e328a37fd52b671f00c0a9d87111d514487
S: aeca57ee8f3c1dba4f04223ebbe44701853db324 127.0.0.1:7004slots: (0 slots) slavereplicates 5f93a0d2fb64fb182fe22b8d8a75c4af6007eec5
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.E:\Program Files (x86)\redis5.0.14.1>
各个节点的界面如图所示:

4. 连接测试
这里用客户端:ARDM——Another Redis Desktop Manager
下载链接:
https://github.com/qishibo/AnotherRedisDesktopManager/releases
如图所示,编辑信息,点击确认。

点击进入

显示正常

5. 其他
5.1 快速停止集群模式
我们新建一个批量bat,如图所示:

stop.bat 内容如下:
@echo off
set START_PORT=7001
set END_PORT=7006echo Closing port %START_PORT%-%END_PORT%...
echo.for /l %%i in (%START_PORT%, 1, %END_PORT%) do (call :closeProgram %%i
)echo.
echo Closing all
echo.taskkill /f /fi "imagename eq cmd.exe"echo.
echo All closed.
goto :eof:closeProgram
set PORT=%1echo Searching for programs using port %PORT%...for /f "tokens=5" %%a in ('netstat -ano ^| findstr /i ":%PORT%"') do (taskkill /f /pid %%aecho Program with port %PORT% has been closed.
)echo.
echo End of program list for port %PORT%.
goto :eof
相关文章:
Windows本地搭建Redis集群(集群模式)
手打不易,如果转摘,请注明出处! 注明原文:https://blog.csdn.net/q258523454/article/details/144477957 前言 Redis版本:redis 5.0.14.1 Windows版本:Windows10 本文只讲集群模式 1. 安装Redis 1.1 …...
使用FastGPT制做一个AI网站日志分析器
越来越的多网站面临每天上千次的扫描和各类攻击,及时发现攻击IP,并有效的屏蔽不良访问成为网站安全的重要保障,这里我们使用AI来完成对网站日志的日常分析。 我们来使用FastGPT来制做一个AI网站日志析器,下面就开始: …...
探索 Echarts 绘图:数据可视化的奇妙之旅
目录 一、Echarts 初印象 二、搭建 Echarts 绘图环境 三、绘制第一个图表:柱状图的诞生 四、图表的美化与定制:让数据更具吸引力 1. 主题切换:一键变换风格 2. 颜色调整:色彩搭配的艺术 3. 标签与提示框:丰富信…...
网络基础(IP和端口)
网络连接的核心-TCP/IP体系结构(IP和端口) 什么是IP地址 1.IP地址是电子设备(计算机)在互联网上的唯一标识 2.用来在互联网中寻找电脑 IP 地址就像是你家的地址一样,不过它是在网络世界里用来找到一台电脑或者其他网…...
UE4与WEB-UI通信
前端HTML代码 <!DOCTYPE html><html><head><meta charset"utf-8"><meta name"viewport" content"widthdevice-width, initial-scale1"><title>test web ui</title><script src"https://cdn.b…...
前缀和与差分算法详解
定义 前缀和是一种数据预处理技术,它指的是从数组的第一个元素开始,到当前元素为止的所有元素的和。这种技术可以快速计算任意区间内元素的和,而不需要每次都从头开始累加。 差分则是前缀和的逆运算,它主要用于处理对数组某个区…...
《深入探究:C++ 在多方面对 C 语言实现的优化》
目录 一、C 在 C 上进行的优化二、C 关键字(C 98)三、C 的输入输出1. cin 和 cout 的使用2. cin、cout 和 scanf()、printf() 的区别 三、命名空间1. 命名空间的使用2. 嵌套命名空间3. 在多个头文件中使用相同的命名空间 四、函数缺省值1. 缺省值的使用2…...
React 第十六节 useCallback 使用详解注意事项
useCallback 概述 1、useCallback 是在React 中多次渲染缓存函数的 Hook,返回一个函数的 memoized的值; 2、如果多次传入的依赖项不变,那么多次定义的时候,返回的值是相同的,防止频繁触发更新; 3、多应用在 父组件为函…...
使用C#和OPenCV实现圆形检测
文章目录 霍夫变换使用 OpenCV 和 C# 实现圆形检测 霍夫变换 在计算机视觉中,圆形检测是一个常见且有用的任务,特别是在物体识别、图像分析和图形处理等领域。OpenCV 是一个强大的开源计算机视觉库,它提供了许多工具来实现不同的图像处理功能…...
评估一套呼叫中心大模型呼入机器人的投入回报比?
评估一套呼叫中心大模型呼入机器人的投入回报比? 原作者:开源呼叫中心FreeIPCC,其Github:https://github.com/lihaiya/freeipcc 评估一套呼叫中心大模型呼入机器人的投入回报比(ROI),是一个多…...
十八、Label 和 Selector
Label 是键值对,用来标识 Kubernetes 资源(如 Pod、Node、Service 等)的属性。它们并不直接影响资源的行为,但可以帮助用户快速组织、查询和操作这些资源。标签可以用于选择、过滤和分组。 Label: 标签对 k8s 中各种资源进行分类、分组,如Pod和节点进行分组。通过添加kev…...
实现按键按下(低电平)检测到下降沿
按照流程进行编程 步骤1: 初始化函数 包括时基工作参数配置 输入通道配置 更新中断使能 使能捕获、捕获中断及计数器 HAL_TIM_IC_Init(&ic_handle) //时基参数配置 HAL_TIM_IC_ConfigChannel(&ic_handle,&ic_config,TIM_CHANNEL_2) //输…...
解析 SSM 垃圾分类系统,助力生态平衡
前 言 垃圾分类系统,传统的垃圾分类系统模式还处于线下管理阶段,管理效率极低。随着垃圾分类系统信息的不断增多,传统基于线下管理模式已经无法满足当前用户需求,随着信息化时代的到来。通过该系统的设计,管理员可以管…...
软件工程 设计的复杂性
复杂性代表事件或事物的状态,它们具有多个相互关联的链接和高度复杂的结构。在软件编程中,随着软件设计的实现,元素的数量以及它们之间的相互联系逐渐变得庞大,一下子变得难以理解。 如果不使用复杂性指标和度量,软件…...
Nginx 限制只能白名单 uri 请求的配置
实际生产项目中,大多数时候我们会将后端的 http 接口通过前置 nginx 进行反向代理,对互联网用户提供服务。往往我们后端服务所能提供的接口服务是大于互联网用户侧的实际请求的接口地址数量的(例如后端服务一共有100个api接口,经过…...
QT c++ 同时使用sqlite 和mysql数据库的问题
在项目开发中,同时使用了sqlite 和mysql数据库,分开这两部分运行功能都正常,但是一起运行,就异常,sqlite部分不能使用。 现象:出现如下提示 QSqlDatabasePrivate::addDatabase: duplicate connection nam…...
redis集群 服务器更换ip,怎么办,怎么更换redis集群的ip
redis集群 服务器更换ip,怎么办,怎么更换redis集群的ip 1、安装redis三主三从集群2、正常状态的redis集群3、更改redis集群服务器的ip 重启服务器 集群会down4、更改redis集群服务器的ip 重启服务器 集群down的原因5、更改redis集群服务器的ip后…...
【C++习题】19.数组中第K个大的元素
题目:数组中第K个大的元素 链接🔗:数组中第K个大的元素 题目: 代码: class Solution { public:int findKthLargest(vector<int>& nums, int k) {// 将数组中的元素先放入优先级队列中priority_queue<i…...
JIS-CTF: VulnUpload靶场渗透
JIS-CTF: VulnUpload来自 <https://www.vulnhub.com/entry/jis-ctf-vulnupload,228/> 1,将两台虚拟机网络连接都改为NAT模式 2,攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 靶机IP地址192.168.23.162,攻击机IP地址192.168.23.140…...
BGP-面试
简单介绍一下BGP BGP,边界网关协议,属于路径矢量路由协议。属于触发式更新或者增量更新。具有丰富的路由策略,能够灵活的进行路由选择。重心不是在路由学习,而是路由优选、更高效的传递路由和维护大量的路由信息。基于TCP…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...
