当前位置: 首页 > news >正文

Redis 集群搭建教程

一、介绍

Redis 集群有着高可用、易扩展、更好的性能等优势,本文主要是实战搭建一个三主三从的 Redis 集群。

正常来说,搭建 Redis 集群需要 6 台服务器。为了简单一点,本文通过一台服务器,6 个端口,搭建一个 Redis 的伪集群。

二、准备环境

IP 地址端口号
10.211.55.48001~8006

三、安装 Redis

3.1、安装 C/C++ 环境,编译 Redis 安装包使用

yum -y install gcc gcc-c++ make  

3.2、下载 Redis 安装包

# 切换软件安装目录  
cd /usr/local/  # 新建 redis 安装目录  
mkdir redis  # 切换到 redis 安装目录  
cd redis  # 下载 redis 安装包  
wget http://download.redis.io/releases/redis-6.2.5.tar.gz  # 解压 redis 安装包  
tar -zxvf redis-6.2.5.tar.gz  

3.3、编译 redis

# 进入解压后的 Redis 目录  
cd redis-6.2.5/  # 编译  
make  # 进入编译好的目录(编译成功后 src 目录下会出现编译后的 Redis 服务程序 redis-server)  
cd src  

image-20230921170229468

四、Redis 集群配置

4.1、创建集群相关目录

# 切换目录  
/usr/local/redis  # 创建 Redis 集群目录  
mkdir rediscluster  # 进入 rediscluster 目录  
cd rediscluster  # 批量创建六个文件夹  
mkdir ./node800{1,2,3,4,5,6}  

image-20230924113834429

4.2、redis.conf 文件配置

# 进入 redis.conf 所在目录  
cd /usr/local/redis/redis-6.2.5  # 编辑 redis.conf 文件  
vim redis.conf  

需要修改的配置内容如下

# 设置端口  
port 8001  #去掉绑定的 ip  
#bind 127.0.0.1  #关闭保护模式  
protected-mode no  # 指定数据文件存放位置,必须要指定不同的目录,不然会丢失数据,默认 dir ./。  
dir /usr/local/redis/rediscluster/node8001  # 开启集群模式  
cluster-enabled yes  # 集群节点配置文件,这里的800x最好和port对应上,redis集群自动创建、自动更新  
cluster-config-file nodes-8001.conf  # 集群超时时间,节点超过这个时间没反应就断定是宕机  
cluster-node-timeout 5000  # 开启AOF持久化  
appendonly yes  # 如果要设置密码,需要增加如下配置:  
# 设置redis访问密码  requirepass 123456  
# 设置集群节点间访问密码,跟上面一致  
masterauth 123456  

4.3、拷贝 redis.conf 到集群相关目录

# 进入 redis.conf 目录  
cd /usr/local/redis/redis-6.2.5  # 拷贝 redis.conf 文件到 node800x 相关目录  
cp redis.conf ../rediscluster/node8001  
cp redis.conf ../rediscluster/node8002  
cp redis.conf ../rediscluster/node8003  
cp redis.conf ../rediscluster/node8004  
cp redis.conf ../rediscluster/node8005  
cp redis.conf ../rediscluster/node8006  

4.4、将 node8001 ~ node8006 目录下的 redis.conf 文件的端口号一个一个替换

image-20230925112602941

4.5、启动 Redis 集群

# 切换到 redis 的 src 目录  
cd /usr/local/redis/redis-6.2.5/src  # 一个一个启动 redis  
./redis-server ../../rediscluster/node8001/redis.conf  
./redis-server ../../rediscluster/node8002/redis.conf  
./redis-server ../../rediscluster/node8003/redis.conf  
./redis-server ../../rediscluster/node8004/redis.conf  
./redis-server ../../rediscluster/node8005/redis.conf  
./redis-server ../../rediscluster/node8006/redis.conf  # 查看 redis 的启动状态  
ps -ef | grep redis  

image-20230925142604828

# 切换到 redis 的 src 目录  
cd /usr/local/redis/redis-6.2.5/src  # 组建 redis 集群(注意,执行下面这个命令的时候,要在一行,不要换行)  
./redis-cli -a 123456 --cluster create 10.211.55.4:8001 10.211.55.4:8002 10.211.55.4:8003 10.211.55.4:8004 10.211.55.4:8005 10.211.55.4:8006 --cluster-replicas 1  

image-20230925143613901

五、连接 Redis 集群

5.1、连接方式

使用 Another Redis Desktop Manager 客户端连接集群的方式如下。连接以后就可以和平常一样使用 redis 了。

image-20230925143948182

5.2、集群相关命令

# 假设先在 redis 塞一个 key value 键值对  
set key value  # 查看 key 为 key 的 slot 值  
cluster keyslot key  # 查看slot信息  
cluster slots  # 查看集群相关信息  
cluster info  # 查看集群中节点的相关信息  
cluster nodes  

六、故障模拟

正常情况下的集群,杀掉集群中的某个主节点

# 查看 Redis 进程信息  
ps aux | grep redis  # 杀掉 8001 对应的进程 id(-9 后面的是对应的进程 id,ps aux | grep redis 命令展示的第二列)  
kill -9 15913  

查看集群节点的信息

image-20230925154419541

杀掉 8005 主节点后的节点信息

image-20230925154536167

重新启动 8005 redis

# 切换到 redis 的 src 目录  
cd /usr/local/redis/redis-6.2.5/src  # 一个一个启动 redis  
./redis-server ../../rediscluster/node8005/redis.conf  

image-20230925154713476

七、参考资料

  • Linux搭建redis集群
  • Redis 6.0 集群搭建实践

八、最后

我是 xiucai,一位后端开发工程师。

如果你对我感兴趣,请移步我的个人博客,进一步了解。

- 文中如有错误,欢迎在评论区指正,如果这篇文章帮到了你,欢迎点赞和关注😊
- 本文首发于个人博客,未经许可禁止转载💌

相关文章:

Redis 集群搭建教程

一、介绍 Redis 集群有着高可用、易扩展、更好的性能等优势,本文主要是实战搭建一个三主三从的 Redis 集群。 正常来说,搭建 Redis 集群需要 6 台服务器。为了简单一点,本文通过一台服务器,6 个端口,搭建一个 Redis …...

图形处理软件Photoshop Elements 2020 mac中文版 ps简化版

Photoshop Elements 2020 mac是一款非常实用的图形处理工具。ps elements 2020 mac中文版可以帮助您自动生成照片和视频作品的功能,采用Adobe Sensei AI技术可进行图像组织、编辑和创建等。Photoshop Elements 2020 for Mac激活版可以帮助您轻松整理照片和视频&…...

opencv for unity package在unity中打开相机不需要dll

下载OpenCV for Unity 导入后,里面有很多案例 直接打开就可以运行 打开相机...

[Linux入门]---进程状态

文章目录 1.进程主要状态进程运行状态进程阻塞状态进程的挂起状态 2.Linux进程状态Linux进程内核源代码①R运行状态②S睡眠状态③D磁盘休眠状态T停止状态④X死亡状态⑤Z僵尸状态⑥孤儿进程 3.总结 1.进程主要状态 进程运行状态 ①内存中有一个运行队列,其中有两个指…...

腾讯mini项目-【指标监控服务重构】2023-08-29

今日已办 Collector 指标聚合 由于没有找到 Prometheus 官方提供的可以聚合指定时间区间内的聚合函数,所以自己对接Prometheus的api来聚合指定容器的cpu_avg、cpu_99th、mem_avg 实现成功后对接小组成员测试完提供的时间序列和相关容器,将数据记录在表格…...

opencv 常用的滤波器及应用技巧

常用滤波器: 标准滤波器(邻域平均法):该滤波器是所有滤波器里最简单的一种,输出的像素值由输入的滤波核所覆盖的像素值均值决定(每个邻域像素对其贡献的权重是相同的)。高斯滤波:该…...

【PyTorch攻略(1/7)】 张量基本语法

一、说明 Tensor 是一种特殊的数据结构,与数组和矩阵非常相似。在 PyTorch 中,我们使用张量对模型的输入和输出以及模型的参数进行编码。 张量类似于 NumPy 和 ndarray,除了张量可以在 GPU 或其他硬件加速器上运行。事实上,张量和…...

什么是Jmeter ?Jmeter使用的原理步骤是什么?

1.1 什么是 JMeter Apache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具。用于对软件做压力测试,它最初被设计用于 Web 应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚…...

Mac 通过 brew安装的 ffmpeg 切换版本

现有版本为 6.x ,想切换至 5.x 版本 先安装 5.x 版本 brew install ffmpeg5安装完成后会出现具体版本号,也可以自己指定例如 brew install ffmpeg5.1.3 配置环境变量 .zshrc vi ~/.zshrc添加如下命令 export PATH/usr/local/Cellar/ffmpeg5/5.1.3/bin:…...

【Spring Boot】实战:实现数据缓存框架

🌿欢迎来到@衍生星球的CSDN博文🌿 🍁本文主要学习【Spring Boot】实现数据缓存框架 🍁 🌱我是衍生星球,一个从事集成开发的打工人🌱 ⭐️喜欢的朋友可以关注一下🫰🫰🫰,下次更新不迷路⭐️💠作为一名热衷于分享知识的程序员,我乐于在CSDN上与广大开发者…...

MySQL数据类型之JSON

MySQL数据类型之JSON SON类型是MySQL 5.7版本新增的数据类型,用好JSON数据类型可以有效解决很多业务中实际问题。 使用JSON数据类型,推荐用MySQL 8.0.17以上的版本,性能更好,同时也支持Multi-Valued Indexes; JSON数…...

nginx_0.7.65_00截断_nginx解析漏洞

nginx_0.7.65_00截断_nginx解析漏洞 文章目录 nginx_0.7.65_00截断_nginx解析漏洞1 环境搭建1 解压nginx_0.7.652 双击启动,如有闪退,端口占用的情况,在conf文件nginx.conf修改一下端口号3 查看一下进程有nginx4 启动成功访问127.0.0.1:18080…...

建站百科:HTTP返回状态码是什么?

HTTP返回状态码是用于表示HTTP响应状态的三位数字代码。HTTP状态码由6位数字组成,每3位数字代表一种状态,如200表示成功,404表示未找到资源,500表示服务器内部错误等。 常用的状态码包括: 200:正常的网页…...

人像摄影简记

文章目录 光影室外顺光室内顺光室外逆光室内逆光散射光 姿势错误姿势避免摆拍技巧场景互动抓拍利用道具 构图构图目的构图基础概念画幅:横画幅和竖画幅景别:全身、大半身及半身、特写拍摄高度:平拍、俯拍和仰拍拍摄方位:正面、前侧…...

【Java 基础篇】Java 实现模拟斗地主游戏

欢迎阅读本篇博客,在这篇博客中,我们将详细讲解如何使用Java编写一个简单的模拟斗地主游戏。这个项目将帮助您了解Java编程中的一些基本概念,如面向对象编程、集合框架的使用、随机数生成等。 引言 斗地主是一种非常受欢迎的纸牌游戏&#…...

计算机专业毕业设计项目推荐09-个人医疗系统(Spring+Js+Mysql)

个人医疗系统(SpringJsMysql) **介绍****系统总体开发情况-功能模块****各部分模块实现** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设计流程以及…...

安卓Compose(一)

为什么学习安卓Compose? 安卓Compose是一个相对新的UI工具包,它的出现为安卓应用程序开发带来了一系列的好处。下面是一些学习Compose的理由: 声明式UI 与传统的安卓XML布局相比,Compose使用了声明式的UI编程范例。这意味着你可以…...

【Linux学习】03Linux用户和权限

Linux(B站黑马)学习笔记 01Linux初识与安装 02Linux基础命令 03Linux用户和权限 文章目录 Linux(B站黑马)学习笔记前言03Linux用户和权限认知root用户root用户(超级管理员)su和exit命令sudo命令 用户、用户…...

LeetCode 面试题 05.04. 下一个数

文章目录 一、题目二、Java 题解2.1 求大数:2.2 求小数: 一、题目 下一个数。给定一个正整数,找出与其二进制表达式中1的个数相同且大小最接近的那两个数(一个略大,一个略小)。 示例1: 输入: n…...

SDXL prompt 笔记

模型 模型有两个,分别是 stable-diffusion-xl-base-1.0、stable-diffusion-xl-refiner-1.0。 base 模型是用来做文生图,refiner 模型是用来做图生图的。 SDXL 模型之 base、refiner 和 VAE_云水木石的博客-CSDN博客 分辨率 默认是1024*1024&#xf…...

React Native 导航系统实战(React Navigation)

导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制&#xff0…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

数据链路层的主要功能是什么

数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...