Redis集群搭建(Cluster 集群模式,分片集群)

article/2025/11/5 5:09:11

Redis集群搭建Cluster 集群模式

  • 引言
  • Redis的集群介绍
  • 搭建方法
    • 创建集群
    • 其他服务的搭建

引言

redis相信大家不陌生,是最常用的缓存解决方案了。但是,在服务开发中,单机都会存在单点故障的问题,及服务部署在一台服务器上,一旦服务器宕机服务就不可用,所以为了让服务高可用,分布式服务就出现了,将同一服务部署到多台机器上,即使其中几台服务器宕机,只要有剩余的服务器可用服务就可用。redis也是一样,要合理的使用redis,搭建一个高可用的集群是必不可少的。

Redis的集群介绍

redis常见有三种集群方案,下面简单介绍一下:

  1. 主从模式
    首先为了解决单机故障引入了主从模式,但主从模式存在一个问题:master节点故障后服务,需要人为的手动将slave节点切换成为maser节点后服务才恢复。
    在这里插入图片描述
  2. 哨兵模式
    为了解决master节点故障问题,redis又引入了哨兵模式,哨兵模式能在master节点故障后能自动将salve节点提升成master节点,不需要人工干预操作就能恢复服务可用。但是主从模式、哨兵模式都没有达到真正的数据sharding存储,每个redis实例中存储的都是全量数据。
    在这里插入图片描述
  3. 分片集群
    实现了真正的数据分片存储,有如下特征

集群中有多个master,每个master保存不同数据

每个master都可以有多个slave节点

master之间通过ping监测彼此健康状态

客户端请求可以访问集群任意节点,最终都会被转发到正确节点

在这里插入图片描述

搭建方法

我们就按照上图搭建一个最小的分片集群,包含3个master节点,每个master节点包含一个slave节点。我使用的系统是CentOS7。
1、创建目录如下:

选择一个目录。我选择的是/opt/CJY/redis-cluster执行命令
mkdir 7001 7002 7003 8001 8002 8003

在这里插入图片描述
2、在redis-cluster目录下准备一个redis.conf文件,内容如下

port 6379
# 开启集群功能
cluster-enabled yes
# 集群的配置文件名称,不需要我们创建,由redis自己维护
cluster-config-file /opt/CJY/redis-cluster/6379/nodes.conf
# 节点心跳失败的超时时间(ms)
cluster-node-timeout 5000
# 持久化文件存放目录
dir /opt/CJY/redis-cluster/6379
# 绑定地址
bind 0.0.0.0
# 让redis后台运行
daemonize yes
# 注册的实例ip
replica-announce-ip 101.42.165.47
# 保护模式
protected-mode no
# 数据库数量(让每个节点只有一个库就可以)
databases 1
# 日志
logfile /opt/CJY/redis-cluster/6379/run.log

创建完成如下:
在这里插入图片描述
3、将这个文件拷贝到刚才创建的每个目录

#执行拷贝

echo 7001 7002 7003 8001 8002 8003 | xargs -t -n 1 cp redis.conf

4、更换端口,修改每个目录下的redis.conf,将其中的6379修改为与所在目录一致:

#修改配置文件
printf ‘%s\n’ 7001 7002 7003 8001 8002 8003 | xargs -I{} -t sed -i ‘s/6379/{}/g’ {}/redis.conf

5、配置完成以后,将一台redis拉取到当前目录下。我选择的是redis-6.2.4,需要一个tar.gz包,之后解压到当前目录

tar -zxvf redis-6.2.4.tar.gz

6、接下来就可以启动了,可以看到重要的就是第二步的conf文件了

#一键启动所有服务
printf ‘%s\n’ 7001 7002 7003 8001 8002 8003 | xargs -I{} -t redis-server {}/redis.conf

7、ps查看状态

ps -ef | grep redis

在这里插入图片描述
服务正常启动,如果要关闭所以进程,可以执行如下命令:

printf ‘%s\n’ 7001 7002 7003 8001 8002 8003 | xargs -I{} -t redis-cli -p {} shutdown
在这里插入图片描述

创建集群

上诉已经启动了多个redis服务,但是每个服务之间都是独立的,没有进行关联,我们需要执行命令来创建集群。redis5.0之后集群管理命令都集成到了redis-cli中。命令如下:地址需要换成自己的地址哦

#进入redis的src目录
cd /opt/CJY/redis-cluster/redis-6.2.4/src
#创建集群
./redis-trib.rb create --replicas 1 192.168.150.101:7001 192.168.150.101:7002 192.168.150.101:7003 192.168.150.101:8001 192.168.150.101:8002 192.168.150.101:8003.

命令说明:

  • redis-cli --cluster或者./redis-trib.rb:代表集群操作命令
  • create:代表是创建集群
  • --replicas 1或者--cluster-replicas 1 :指定集群中每个master的副本个数为1,此时节点总数 ÷ (replicas + 1) 得到的就是master的数量。因此节点列表中的前n个就是master,其它节点都是slave节点,随机分配到不同master

在这里插入图片描述
如果连接的是远程地址而没执行成功,要检查一下上诉的端口是否打开。同时,还需要打开其加1w的端口,比如7001打开的同时,还要打开17001端口,其代表着内部的通信端口

在这里插入图片描述
输入yes后,集群开始创建。并且可以自动创建出master和salve节点。根据如下命令查看集群状态:

redis-cli -p 7001 cluster nodes

在这里插入图片描述
至此,集群搭建完成。使用连接工具测试一下:
在这里插入图片描述
可以连接
在这里插入图片描述
为了安全可以再加上用户名密码。

没有过多的介绍分别集群的其他作用,可看这篇文章:
https://blog.csdn.net/qq_45748269/article/details/121721611

其他服务的搭建

前面的一篇文章也有一个es集群的搭建,
https://blog.csdn.net/qq_40454136/article/details/125277059
其他,参考其他博主搭建过单机的kafka和zookeeper,都是亲测成功的
https://blog.csdn.net/WeiJiFeng_/article/details/108810545
https://blog.csdn.net/yuntianxia111/article/details/121404739


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

相关文章

七、Redis集群搭建

1.搭建步骤 第一步:在第一台机器的/usr/local下创建文件夹redis‐cluster,然后在其下面分别创建2个文件夹如下 1. mkdir ‐p /opt/module/redis‐cluster 2. mkdir 8001 8004 第二步:把之前的redis.conf配置文件copy到8001下,修改…

redis 集群搭建的三种方式

文章目录 一、Redis主从二、Redis哨兵三、Redis集群 一、Redis主从 二、Redis哨兵 三、Redis集群 下载redis wget http://download.redis.io/releases/redis-5.0.3.tar.gz解压redis tar zxvf redis-5.0.3.tar.gz进行重命名 mv redis-5.0.3 redis安装gcc yum install gcc进入r…

Redis集群搭建(单机集群)

链接:https://pan.baidu.com/s/1IczvAUFhNz23xvCjlTiI_A?pwdruge Redis入门篇https://blog.csdn.net/tongxin_tongmeng/article/details/126620333集群配置文件(3主3从) 1.复制/home/redis/redis-7.0.4/redis.conf到/home/redis/workspace/…

redis集群搭建(非常详细,适合新手)

redis集群搭建 在开始redis集群搭建之前,我们先简单回顾一下redis单机版的搭建过程 下载redis压缩包,然后解压压缩文件;进入到解压缩后的redis文件目录(此时可以看到Makefile文件),编译redis源文件&#…

centos7 redis集群搭建

redis集群搭建 1 先安装6台redis服务 1 这里使用三台节点 10.0.11.54 10.0.11.56 10.0.11.57,每台节点安装2个redis服务,通过不同的端口号区分 2 复制redis.conf 两份,redis-6479.con redis-6480.conf 将cluster-enabled yes 的注释打开,将 …

Redis集群搭建linux

一、什么是Redis集群 Redis集群是为了能够解决一台主服务器容量不足或者是出现高并发写操作时性能不足的问题,Redis集群就是将多台主服务器进行连接以实现多台主服务器数据同步和共享。 每个Redis集群一共有16384个插槽,这16384个插槽将会被平均分配给群…

Redis 集群搭建

一、redis安装 下载地址:http://redis.io/download 安装步骤: # 安装gcc yum install gcc # 把下载好的redis-5.0.2.tar.gz放在/usr/local文件夹下,并解压wget http://download.redis.io/releases/redis-5.0.2.tar.gz tar xzf redis-5.0…

Redis集群搭建【超详细】

有问题可以关注公众号:提着月亮去火星 一、基本环境 首先我们需要使用VMware配置几个虚拟机,我们需要安装VMWare然后 下载自己的linux镜像文件,在虚拟机上安装linux系统, vm15和centos7下载传送门 提取码: lvb5 。…

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的优点参考…