Redis集群搭建【超详细】

article/2025/11/5 5:15:08

 有问题可以关注公众号提着月亮去火星

一、基本环境

首先我们需要使用VMware配置几个虚拟机,我们需要安装VMWare然后 下载自己的linux镜像文件,在虚拟机上安装linux系统,

vm15和centos7下载传送门   提取码: lvb5 。我使用的是centos7 64

大致步骤可以根据其他博客将第一台虚机的系统安装成功,然后直接clone这台机器就可以了,然后需要修改ip。

 二、准备相关软件安装包

在这里我们需要准备 redis-3.0.7.tar.gz  如果需要搭建其他集群请自行准备,上面的链接中还提供了zookeeper的文件。

三、开始

1、我们启动好虚拟机后,首先需要确保各个之间可以ping 通。

2、我们使用xshell工具连我自己的这几台服务器。

配置大致如上图,配置参数如下图。

3、cd /root/software 进入到我们software目录下 我们可以使用wget http://download.redis.io/releases/redis-3.0.7.tar.gz 下载 ,也可以使用xshell 提供的文件传输工具将我们的离线文件上传至software下:

目录如上。

进入到 redis-3.0.7目录下 使用如下命令

4、编译并安装

 cd redis-3.2.4

 make && make install

5、 将 redis-trib.rb 复制到 /usr/local/bin 目录下

cd src
cp redis-trib.rb /usr/local/bin/

6、创建redis节点(在/root/software/redis-3.0.7 下创建redis_cluster 目录)

mkdir redis_cluster


7、创建节点目录并将redis.conf文件复制到节点目录下

mkdir 7000 7001 7002    (创建节点目录)

cp redis.conf redis_cluster/7000
cp redis.conf redis_cluster/7001
cp redis.conf redis_cluster/7002

复制配置文件

8、修改配置文件

port  7000                                        //端口7000,7002,7003        
bind 本机ip                                       //改为其他节点机器可访问的ip 可以使用ifconfig查看一下
daemonize    yes                               //redis后台运行
appendonly  yes                           //aof日志开启  有需要就开启,它会每次写操作都记录一条日志
pidfile  /var/run/redis_7000.pid          //pidfile文件对应7000,7001,7002
cluster-enabled  yes                           //开启集群  
cluster-config-file  nodes_7000.conf   //集群的配置  配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout  15000                //请求超时  默认15秒,可自行修改

操作之后在另外一台机器重复该操作。

9、启动各个节点

第一台机器上执行
redis-server redis_cluster/7000/redis.conf
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

10、检查启动情况

ps -ef | grep redis

netstat -tnlp | grep redis

注意红色部分是总线ip稍后会给我们埋坑

11、创建集群之前准备

redis-trib.rb使用ruby实现的所以在执行集群创建命令之前我们需要安装ruby。

启动命令:

redis-trib.rb  create  --replicas  1  192.168.255.128:7003   192.168.255.128:7004   192.168.255.128:7005  192.168.255.3:7000  192.168.255.3:7001  192.168.255.3:7002  

不安装的话会出现下图结果:

所以我们需要使用如下命令安装redis接口:

gem install redis

我们看到上图提示说需要redis的version 大于 2.3.0 。

这是因为我之前使用 yum -y install ruby ruby-devel rubygems rpm-build 安装的了ruby 但是安装的版本是2.0.0的。

我们可以使用RVM来对ruby进行环境的管理和切换,而RVM需要通过CRUL来进行下载。

12 安装CRUL

使用命令    yum install curl

 13、使用curl安装rvm

命令: curl -L get.rvm.io | bash -s stable

14、使用key进行RVM的安装

source ~/.bashrc

source ~/.bash_profile

执行上述命令使环境变量生效。

使用source让当前shell读入路径为" /usr/local/rvm/scripts/rvm "(路径可以自定义)的shell文件并依次执行文件中的所有语句,并重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录

15、安装需要的ruby版本

rvm install 2.4.6

16、检查版本,移除旧版本,check新版本

rvm use 2.4.6 #启用新版本

rvm remove 2.0.0  # 移除旧版本

ruby -v #检查当前使用的版本号

17、然后继续redis接口安装(gem install redis

18、现在可以执行redis集群启动命令

redis-trib.rb  create  --replicas  1  192.168.255.128:7003   192.168.255.128:7004   192.168.255.128:7005  192.168.255.3:7000  192.168.255.3:7001  192.168.255.3:7002  

执行命令时出现下面的错误。

[ERR] Sorry, can't connect to node 192.168.255.3:7000

这个错误的原因是我们之前配置的所有节点都没有进行对外开放所以无法链接。

firewall-cmd --zone=public --add-port=7003/tcp --permanent 
firewall-cmd --zone=public --add-port=7004/tcp --permanent 
firewall-cmd --zone=public --add-port=7005/tcp --permanent 
firewall-cmd --reload
firewall-cmd --zone=public --add-port=7000/tcp --permanent 
firewall-cmd --zone=public --add-port=7001/tcp --permanent 
firewall-cmd --zone=public --add-port=7002/tcp --permanent 
firewall-cmd --reload

在两台机器上分别执行上述命令开发端口。这里我们修改的是firewall防火墙。

此时执行会出现如下图的情况:

后面的点会一直点一下一直等待中。

这是因为我们只是开放了客户端节点的端口,没有开放集群总线的端口,总线端口就是客户端端口+10000,上面我们提到重点注意的

19、在iptables中开发所有端口

我们使用命令

cd /etc/sysconfig/可以使用vi iptables 先查看一下 目前只是开放了 22 端口。

iptables -A INPUT -p tcp --dport 17001 -j ACCEPT
iptables -A INPUT -p tcp --dport 17002 -j ACCEPT
iptables -A INPUT -p tcp --dport 17000 -j ACCEPT
iptables -A INPUT -p tcp --dport 7001 -j ACCEPT
iptables -A INPUT -p tcp --dport 7002 -j ACCEPT
iptables -A INPUT -p tcp --dport 7000 -j ACCEPTservice iptables save #保存文件
iptables -L -n #查看哪些端口开放了-----------------------------------------------
iptables -A INPUT -p tcp --dport 17003 -j ACCEPT
iptables -A INPUT -p tcp --dport 17004 -j ACCEPT
iptables -A INPUT -p tcp --dport 17005 -j ACCEPT
iptables -A INPUT -p tcp --dport 7003 -j ACCEPT
iptables -A INPUT -p tcp --dport 7004 -j ACCEPT
iptables -A INPUT -p tcp --dport 7005 -j ACCEPT
service iptables save #保存文件
iptables -L -n #查看哪些端口开放了

20、此时再次执行集群启动命令

[ERR] Node xxxxx is not empty. Either the node already knows other nodes (check with CLUSTER NODES) 

会提示我们node节点不空,这是因为我们之前在执行redis集群启动命令的时候虽然一直等待,但是相关节点配置数据以及数据文件都已经生成。我们需要进入到我们的redis解压目录下删除掉图中红色的数据文件:

执行rm ****  然后选择y

最后我们再次执行集群启动命令成功:

21 测试集群效果:

在Xshell中新开一个窗口 如下图,使用7002的节点进行设值操作传递到7003主。(如图 03、04 00 都是主)

set redis cluster

接下来我们能在另外一台机器上链接05从节点,进行取值操作 get redis

集群功能测试成功。至此redis集群搭建测试成功。


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

相关文章

redis集群搭建

注意:本测试,基于redis 5.0.7来搭建,redis 4 版本的搭建和redis 5 会有区别 2.修改各个主机 redis.conf 配置文件的配置 按照下图的,几处要求修改: #关闭保护模式,用于公网访问 protected-mode no port…

集群搭建(Redis)(超详细)

集群介绍: Redis 集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N。 Redis 集群通过分区(partition)来提供一定程度的可用性(av…

redis集群的搭建

redis单机版,出现单机故障后,导致redis无法使用,如果程序使用 redis,间接导致程序出错。 redis集群的搭建方式一共有三种:主从复制模式,哨兵模式和主从模式。哨兵模式是对主从模式的一种补充,而…

springboot整合Redis哨兵

1.1SpringBoot整合Redis哨兵 1.1.1入门案例 /*** 哨兵测试* 1.配置redis的节点数据集合* 2.利用哨兵机制连接redis节点.* 3.用户通过哨兵 实现缓存操作.* * 参数1: masterName*/ Test public void testSentinel() {//配置哨兵的信息Set<String> sentinels new Ha…

Redis集群搭建的三种方式

一、Redis主从 1.1 Redis主从原理 和MySQL需要主从复制的原因一样&#xff0c;Redis虽然读取写入的速度都特别快&#xff0c;但是也会产生性能瓶颈&#xff0c;特别是在读压力上&#xff0c;为了分担压力&#xff0c;Redis支持主从复制。Redis的主从结构一主一从&#xff0c;一…

Redis集群搭建(非常详细)

https://blog.csdn.net/qq_42815754/article/details/82912130 redis集群搭建 在开始redis集群搭建之前&#xff0c;我们先简单回顾一下redis单机版的搭建过程 下载redis压缩包&#xff0c;然后解压压缩文件&#xff1b; 进入到解压缩后的redis文件目录&#xff08;此时可以看…

什么是TCN?

TCN&#xff08;Two-way communication network&#xff09;即双向通信网络。使用socks5技术&#xff0c;通过特定的中转服务器完成数据传输。 在服务器端部署完成后&#xff0c;用户需要按照指定的密码、加密方式和端口使用客户端软件与其连接。在成功连接到服务器后&#xff…

MS-TCN: Multi-Stage Temporal Convolutional Network for Action Segmentation

论文题目&#xff1a;Multi-Stage Temporal Convolutional Network for Action Segmentation 原文地址&#xff1a;https://arxiv.org/abs/1903.01945 这篇文章涉及的是视频的行为分割问题&#xff08;Action Segmentation&#xff09;&#xff0c;也就是对视频&#xff08;vi…

TCN时间卷积网络介绍

绪论 TCN, Temporal Convolutional Network,时间卷积网络&#xff0c;是一种能够处理时间序列数据的网络结构&#xff0c;论文还评为 2018年10大论文。 1. 模型 输入&#xff1a; x 0 , x 1 , . . . , x t {x_0, x_1,..., x_t} x0​,x1​,...,xt​ 输出&#xff1a; y 0 , …

TCN: TEMPORAL CONVOLUTIONAL NETWORKS

搬运自&#xff1a;Raushan Roy-TEMPORAL CONVOLUTIONAL NETWORKS Learning sequences efficiently and effectively Until recently the default choice for sequence modeling task was RNNs because of their great ability to capture temporal dependencies in sequenti…

【深度学习论文阅读】TCN:An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence

2018年人工智能十佳论文之一&#xff1a;TCN 论文地址&#xff1a;An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling 项目地址&#xff1a;TCN的github链接 文章目录 1. ABSTRACT2. INTRODUCTION & BACKGROUND2.1 Temporal…

wavenet及TCN

一切皆卷积——包括时序相关任务 1.wavenet1.1 wavenet的pytorch实现1.1.1 wavenet类1.1.2 ResidualConv1dGLU 1.2 wavenet在纳米孔测序中的应用 2.Temporal Convolutional Network&#xff08;TCN&#xff09;2.1 TCN模型介绍2.3 TCN代码实现及可视化 3.wavenet/TCN的优点参考…

时序模型(一)—— TCN 时间卷积网络

一、 概述 TCN是18年提出的时序卷积神经网络模型。 时序问题建模&#xff0c;通常采用RNN循环神经网络及其相关变种&#xff0c;比如LSTM、GRU等&#xff0c;这里将卷积神经网络通过膨胀卷积达到抓取长时依赖信息的效果&#xff0c;TCN在一些任务上甚至能超过RNN相关模型。 …

【学习日志】【TCN】时间序列卷积神经网络(1)

1. ask bing&#xff08;Temporal Convolutional Network&#xff09; 问&#xff1a;“我对CNN、RNN、TCN等神经网络没有任何基础&#xff0c;你能直观地给我讲一下TCN的结构、输入输出和原理吗&#xff1f;” bing对TCN的解释如下&#xff1a; TCN是一种用于处理序列数据的神…

LSTM的备胎,用卷积处理时间序列——TCN与因果卷积(理论+Python实践)

什么是TCN TCN全称Temporal Convolutional Network&#xff0c;时序卷积网络&#xff0c;是在2018年提出的一个卷积模型&#xff0c;但是可以用来处理时间序列。 卷积如何处理时间序列 时间序列预测&#xff0c;最容易想到的就是那个马尔可夫模型&#xff1a; P ( y k ∣ x…

python深度学习之TCN实例

1.TCN的介绍 近些年&#xff0c;关于时间序列、自然语言处理等任务大家一般都会想到RNN、LSTM、GRU&#xff0c;一维CNN以及后面延伸出的Bi-Lstm、ConvLstm等等&#xff0c;这是因为RNN天生可以记住以前时段的信息&#xff0c;而传统的神经网络并不具有这个功能。卷积神经网络…

时间卷积网络TCN:时间序列处理的新模型

这篇文章回顾了基于TCN的解决方案的最新创新。我们首先介绍了一个运动检测的案例研究&#xff0c;并简要回顾了TCN架构及其相对于传统方法的优势&#xff0c;如卷积神经网络(CNN)和递归神经网络(RNN)。然后&#xff0c;我们介绍了一些使用TCN的应用&#xff0c;包括改进交通预测…

TCN论文及代码解读总结

前言&#xff1a;传统的时序处理&#xff0c;普遍采用RNN做为基础网络模型&#xff0c;如其变体LSTM、GRU、BPTT等。但是在处理使用LSTM时时序的卷积神经网络 目录 论文及代码链接一、论文解读1、 摘要2、引言(摘)3、时序卷积神经网络(Temporal Convolutional Networks)3.1 因果…

轨道交通中TCN、TRDP、TSN的理解

轨道交通中TCN、TSN、TRDP的理解 1 TCN2 TSN3 TRDP———————————————————————— 1 TCN TCN&#xff08;Train Communication Network&#xff09;是列车通信网络&#xff0c;是列车通信网络的总称。 在IEC 61375-1 以及GB/T 28029.1中都详细的介绍了列车…

深度学习 + 论文详解: TCN_时间卷积网络_原理与优势

论文链接 TCN: https://arxiv.org/pdf/1803.01271.pdf p.s. TCN stands for Temporal Convolutional Network. 它是除了 RNN architecture 之外的第二种可以分析时间性数据的架构 更多文章将在公众号&#xff1a;AI 算法辞典 首发&#xff01; 前言 RNN 从最一开始发展以来…