【服务端】linux搭建redis集群

article/2025/8/28 20:22:19

分享一次从头到尾的搭建redis的集群过程。

3主3从

图中所有的ip地址都是你自己电脑的ip。

一、安装

1.安装依赖包

yum install gcc-c++

由于我之前已经安装过了,所以不用再安装了,没安装过就等它自动完成

2.下载redis,需要注意的是版本需要在3.0及以上,才支持集群功能。

因为其他的虚拟机redis都是在opt目录下,所以我就在opt目录下下载了。(当然在哪个目录下载并不重要)

wget http://download.redis.io/releases/redis-5.0.5.tar.gz

 下载中....

 下载好的安装包

 解压缩

tar -zxvf redis-5.0.5.tar.gz

 

 重命名

mv redis-5.0.5 redis

 3.编译redis

 进入redis目录

cd redis/

 make

make

 完成

 进入src

cd ./src/

执行 make install

make install

4.安装ruby

注意:必须为2.5版本及以上才能被redis使用,通过yum安装的话版本不适用于redis,所以此处通过手动安装。

1)下载ruby

两种方式

①wget方式下载

我还是切换到 opt 目录下

wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.gz

 可能会下载得很慢(当然如果你有一些特殊的软件可能会很快(-.-))

②网盘(我用你的)

ruby-3.0.2.tar.gz

提取码:1111

2)解压缩

tar -zxvf ruby-3.0.2.tar.gz

进入ruby目录

执行./configure --prefix=/usr/local/rvm //此目录为ruby最终安装目录

./configure --prefix=/usr/local/rvm

 执行 make && make install (时间稍微长一点)

make && make install

查看ruby版本

/usr/local/rvm/bin/ruby -v

3)将ruby写入环境变量

vi /etc/profile

 shift + g 到最后

//在末尾添加 ruby路径与 上步最终安装目录一致 且不要覆盖原有PATH

RUBY_HOME=/usr/local/rvm

export PATH=$PATH:$RUBY_HOME/bin

RUBY_HOME=/usr/local/rvm
export PATH=$PATH:$RUBY_HOME/bin

保存,退出,使文件生效。

source /etc/profile

source /etc/profile

 4)安装ruby所需要的zlib包

yum -y install zlib-devel

进入 ruby-3.0.2/ext/zlib

cd ruby-2.5.1/ext/zlib

执行

ruby ./extconf.rb

 如果出现

mkmf.rb can't find header files for ruby at /usr/share/include/ruby.h

Linux Centos 系统下执行 :yum install ruby-devel
Linux Ubuntu 系统下执行:apt-get install ruby-dev

 make

make

如果出现:make: *** 没有规则可以创建“zlib.o”需要的目标“/include/ruby.h”。 停止。

在Makefile顶部中的增加top_srcdir = ../..

vi Makefile

 

make完成

 make install

make install

 

 5)安装ruby所需要的openssl

yum install openssl-devel -y

进入openssl目录

cd ruby-2.5.1/ext/openssl

执行

ruby ./extconf.rb

 make

make

 make install

make install

 6)gem install redis(ruby的一个库)

gem install redis

 //出现异常:/usr/bin/gem: No such file or directory

//解决方案:ln -s /usr/local/rvm/bin/gem /usr/bin/gem

二、配置redis集群

因为要配置3主3从,理论上来说应该有6台物理机,因为物理机数量不够,就在一台虚拟机上模拟了。

进入redis目录

 1.创建一个文件夹,这里叫做redisCluster(redis集群),当然可以随意命名。

mkdir redisCluster

 进入该文件夹

因为需要3个主机、3个从机,所以需要创建6个文件夹

命名为 7000-7005,当然也可以起其他的名字,为了方便管理,建议如此。

mkdir 7000 7001 7002 7003 7004 7005

 2.给每个文件夹添加一个redis.conf(建议先改一个,然后再给每个文件夹复制)

将 /opt/redis/redis.conf(对应自己的目录)  复制 到 /opt/redis/redisCluster/7000 下

cp -r /opt/redis/redis.conf /opt/redis/redisCluster/7000

重命名

mv redis.conf redis7000.conf

mv redis.conf redis7000.conf

 3.修改配置文件

进入 7000目录下

 编辑配置文件

 需要修改

搜索bind修改 /bind

1)bind 127.0.0.1 192.168.x.x // 绑定的ip 地址+空格+本机地址 

注意:

在redis.conf NETWORK中 Examples下面还有两个bind被注释掉了,千万别搜索到直接改,你要改的是下边的那个bind。

bind 127.0.0.1 192.168.x.x

2)port

  修改为 7000

port 7000

3)后台启动

daemonize yes

daemonize yes

 4)pidfile /var/run/redis_7000.pid 

pidfile /var/run/redis_7000.pid

 5)开启集群

cluster-enabled yes

cluster-enabled yes

 6)cluster-config-file nodes_7000.conf //集群配置文件

cluster-config-file nodes-7000.conf

 7)请求超时时间设置(自己可根据需求设置)

cluster-node-timeout 5000

8)appendonly yes //aof日志开启 用于持久化

appendonly yes

 9)masterauth 密码 (如果没有要求,可以不设置)例如密码是 abc123

masterauth abc123

 10)requirepass 密码(如果没有要求,可以不设置) 与masterauth一致

requirepass abc123

 11)protected-mode 

 默认私有模式是开启的,这可能导致无法与springboot或springcloud的项目进行连接。

所以我要关闭私有模式,关闭了私有模式,需要注释掉bind,就是第一个设置的bind。

#bind 127.0.0.1 192.168.x.x
protected-mode no

 将bind注释 #bind 127.0.0.1 192.168.x.x

 好,到这,第一个配置文件就改完了,然后需要改剩下的5个,慢慢改吧 :)

当然你也可以快速的改,复制这个文件 7000/redis7000.conf 到 每个 7001 、7002等等的下面,并重命名redisXXXX.conf与当前文件夹一致。

最终看起来是这样的

然后从redis7001.conf开始修改,将其中的7000都换成7001就可以了。

vi 7001/redis7001.conf

 7000替换为7001

:%s/7000/7001

 3行上的3个替换

以此类推 redis7002.conf中全部将7000换成7002 、7003 、7004 、7005

4.启动redis各个进程

redis-server /opt/redis/redisCluster/7000/redis7000.conf

 使用当前方式,将6个进程全部启动

为了方便后续的启动,我将启动命令放到shell脚本中了。

 查看redis进程

ps -ef | grep redis

ps -ef | grep redis

 启动集群

redis-cli --cluster create 192.168.x.x:7000  192.168.x.x:7001  192.168.x.x:7002 192.168.x.x:7003 192.168.x.x:7004 192.168.x.x:7005 --cluster-replicas 1 -a abc123

 输入yes

 3主3从

 

 测试集群

redis-cli -c -p 7000 auth abc123

tcping 192.168.x.x 7000

]>>>tcping不是内部或外部命令,也不是可运行的程序
或批处理文件。百度搜索tcping,或者点击这个>tcping.exe。

 把下载完的tcping.exe放到C:\Windows\System32下即可。

 如果出现 No response ,可能有以下几种情况。

1)防火墙

将端口添加到防火墙白名单中

firewall-cmd --permanent --zone=public --add-port=7000/tcp70017002700370047005
firewall-cmd --reload

可以ping通了

2)就是检查redisXXXX.conf中的 bind与protected-mode

种一棵树最好的时间是在10年前,其次是现在。

希望可以帮到你。


http://chatgpt.dhexx.cn/article/EKnNNN6M.shtml

相关文章

将redis 设置为服务

每次启动 redis 都要去到 Redis 安装目录下寻找 redis-server.exe 文件点击,很是麻烦,所以可以通过这个方法将redis设置为服务 进入redis文件夹,输入redis-server.exe --service-install redis.windows.conf --loglevel verbose 出现如下情况…

redis服务

redis软件下载地址:Redis redis支持的数据类型: • 字符串(strings) • 散列(hashes) • 列表(lists) • 集合(sets) • 有序集合(sorted sets) redis常用命令: config get *查看配置select 1选择数据库flushdb清空当前数据库flushall清空所有数据库…

Redis添加到系统服务

一、需求 当我们使用Redis时,需要启动Redis服务,然后才能够在客户端使用,在这里推荐使用一个Redis的客户端管理工具 redisdesktopmanager,每次在控制台打开Redis服务之后,都不能够将该窗口关闭,因为一旦关…

windows redis 后台启动 redis 服务

下载Redis 在Redis的官网下载页上有各种各样的版本,我这次是在windows上部署的,要去GitHub上下载。目前的是2.8.12版的,直接解压,在\bin\release 目录下有个压缩包,这就是我们需要的: 启动Redis 直接在上…

Redis服务部署

这里写自定义目录标题 一.关系型数据与非关系型数据1.1关系型数据库1.2非关系型数据库1.3关系型数据库和非关系型数据库区别1.4非关系型数据库产生背景 二.Redis简介2.1Redis概述2.2Redis优点 三.Redis服务部署四.Redis常用命令4.1Redis工具4.2Redis数据库常用命令4.3密码设置4…

手机短信验证码

阿里短信手机短信验证码功能 使用阿里短信服务管理 注册 登录阿里云 进入控制台 选择短信服务 开通短信服务价格大概0.04元一条 貌似有100条免费试用。 点击新手指导可查看文档 1 按照顺序进行注册登录实名认证 2 创建AccessKey 3 进入短信服务控制台 创建签名管理 签名模板…

短信验证码

写一个发送验证码的功能,需要实现第三方接口,一般采用阿里的接口 第一步:登录阿里大于官网,只需淘宝号即可。 第二步:申请验证码中的签名和短信模板,审核通过即可测试 第三步:下载阿里大于的jar包&#xff…

Win-mac版 AE 2018安装附教程

链接:https://pan.baidu.com/s/17QXFuotLoPmqDQa8DBBRrA?pwdw106 提取码:w106

AE2022最新功能简介

没有什么是您无法使用 After Effects 创建的。 创建电影电影标题、简介和转场。从剪辑中移除对象。生火或下雨。为徽标或角色设置动画。甚至在 3D 空间中导航和设计。借助行业标准的 动态图形 和 视觉效果软件After Effects,您可以将任何想法付诸实践。 ​下载&…

AE圣诞树(html版本),免费

最近网上很火的AE圣诞树,这里免费提供给大家HTML版本 源码和视频下载:https://download.csdn.net/download/qq_56088882/87260627

最新版Adobe2023:After Effects 2023(Ae2023) win/mac版中文特别版

Adobe After Effects 2023(AE2023)它用于视频处理后期制作、创建音乐视频、广告、动画、标题以及许多其他需要数字视频效果的元素。Adobe After Effects提供了出色的控制功能、广泛的创意工具以及与其他视频应用程序集成的能力。由于第三方开发的大量插件库,Adobe A…

解决PR AE 2018打不开,且桌面出现报错文件

1.win11系统安装完pr2018之后,出现了如下报错的文件。 2.排查 安装包是之前笔记本常用的一直没报错,用压缩包封装着不存在文件的缺失。 经过查阅Adobe官方文档发现这是版本未优化的BUG,大部分存在于使用独显的电脑。有相关问题的朋友可以尝试替换高版本…

水清冷冷:AE CC2018安装图文教程攻略(附工具),windows系统64位

工具分享在底部 随着短视频时代热潮到来,水清冷冷觉得,一些懂视频剪辑和特效制作的人才也越来越吃香,自己做自媒体或帮企业制作视频等,都能有好的发展前景。当然像PR剪辑软件和AE特效制作软件还是需要一定的专业水平的&#xff0c…

星际争霸2人工智能研究环境SC2LE完全入门指南

 迈向通用人工智能:星际争霸2人工智能研究环境SC2LE完全入门指南 Kun Ni 飞行器控制专业博士 86 人赞了该文章 题图来源:http://www.neogaf.com/forum/showthread.php?t1401417&page1 版权说明&#xff1a…

QT学习之基础Day1(自用)

1.Qt是什么? Qt(官方发音 [kju:t],音同 cute)是一个跨平台的 C 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行&…

Spring学习(六):WebFlux

文章目录 WebFlux概述简介异步非阻塞 响应式编程简介Reactor实现简介三种信号特点操作符示例代码 SpringWebflux执行流程和核心API执行流程核心API SpringWebflux基于注解编程SpringWebflux基于函数式编程具体步骤示例代码 WebFlux概述 简介 WebFlux是Spring5新添加的模块以用…

Spring Web vs Spring Webflux

当你需要构建Web应用程序时,Spring Web 和 Spring Webflux 是Spring生态系统中的两个框架,但它们之间有一些关键区别。 Spring Web 是一个传统的Web框架,它构建在Servlet API之上。它旨在处理阻塞式I/O,即线程在从数据库或其他服务…

Spring Boot(5)之 WebFlux 响应式编程

1、WebFlux简介 springWebFlux 是 SpringFrameworl5.0 添加的新功能,WebFlux 本身是追随当下最火的 Reactive Programming 而诞生的框架,那么本编就来简述下这个框架到底是做什么的。 参考:Spring-WebFlux简介与使用 1.1、关于WebFlux 我们…

对比WebFlux和WebMVC (为什么使用WebFlux)

对比WebFlux和WebMVC (为什么使用WebFlux) 1.0 WebFlux吞吐量对比WebMVC 2.0 WebFlux延迟/CPU对比WebMVC 3.0 WebFlux内存使用对比WebMVC 4.0 WebFlux最大处理请求对比WebMVC 1

Spring(十)Webflux

Webflux 1、SpringWebflux 介绍 (1)是 Spring5 添加新的模块,用于 web 开发的,功能和 SpringMVC 类似的,Webflux 使用当前一种比较流程响应式编程出现的框架。 (2)使用传统 web 框架&#xff…