深入Redis集群部署:从安装配置到测试验证的完整指南

  

🏡作者主页:点击! 

🐧Linux基础知识(初学):点击!

🐧Linux高级管理防护和群集专栏:点击!

🔐Linux中firewalld防火墙:点击!

⏰️创作时间:2024年7月19日14点10分

🀄️文章质量:96分


目录

实验环境

实验开始

1.安装Redis并修改配置文件

2.安装所需组件

3.修改配置文件

4.测试群集

5.测试结果分析

6.总结


在当今数据驱动的时代,Redis作为一款高性能的内存数据结构存储系统,其在处理高速缓存、实时数据分析、消息队列等场景中扮演着不可或缺的角色。而Redis群集的部署,则是解锁其强大功能的关键一步,它不仅能够提供水平扩展能力,确保数据的高可用性和负载均衡,还能在大规模应用中保证服务的稳定性和效率。

实验环境

6台服务器

3台Master

3台Slave

IP地址:

192.168.192.100 /24 这个安装redis-3.2.0.gem

192.168.192.111 /24

192.168.192.112 /24

192.168.192.113 /24

192.168.192.114 /24

192.168.192.116 /24

实验开始

首先第一步上传安装包

我使用的版本:redis-3.2.9.tar.gz

其中一台上传两个包:redis-3.2.9.tar.gz redis-3.2.0.gem

1.安装Redis并修改配置文件

在每一台服务器上都要按照Redis,安装方式一致,其中的每一台配置都一样,只是IP地址不一样。

我这里采用远程登录软件 所有会话执行

Xshell所有会话 你用别的软件也可以 如果不嫌麻烦的话 就一个个配置

2.安装所需组件
 

yum groupinstall -y 'Development Tools' lrzsz
tar zxvf redis-3.2.9.tar.gz -C /usr/src
[root@localhost ~]# cd /usr/src/redis-3.2.9/
[root@localhost redis-3.2.9]# ls
00-RELEASENOTES  CONTRIBUTING  deps     Makefile   README.md   runtest          runtest-sentinel  src    utils
BUGS             COPYING       INSTALL  MANIFESTO  redis.conf  runtest-cluster  sentinel.conf     testsmake && make install 安装

安装开发工具和解压安装

yum groupinstall -y 'Development Tools' lrzsz:此命令使用包管理器安装“开发工具”组包和包。yumlrzsz

tar zxvf redis-3.2.9.tar.gz -C /usr/src:此命令将 Redis 源码 tarball 解压到目录中。/usr/src

编译并安装Redis:`make && make install`

安装完成之后

3.修改配置文件

找到以下配置参数 把前边的#去掉(不要修改别的 不然到时候连接失败很多问题)

编辑 Redis 配置文件
vim /etc/redis/6379.conf

Redis 配置选项

 bind 0.0.0.0daemonize yescluster-enabled yescluster-node-timeout 15000cluster-require-full-coverage yes

命令解释:

  1. 绑定 0.0.0.0:
    1. 此选项将 Redis 配置为接受来自所有 IP 地址的连接
  2. 守护进程是
    1. 此选项指示 Redis 作为后台守护程序运行。
    2. yes意味着 Redis 将作为守护进程在后台运行,允许在启动 Redis 后释放终端。
  3. 已启用群集 是
    1. 此选项将启用 Redis 集群模式。
    2. yes 表示Redis将以集群模式运行,允许多个Redis节点组成集群,以提高可扩展性和容错能力。
    3. 在集群模式下,数据会自动跨多个节点进行分片。
  4. cluster-node-timeout 15000
    1. 此选项设置群集节点操作的超时(以毫秒为单位)。
    2. 15000 毫秒(15 秒)是 Redis 在认为节点不可用之前等待节点响应的时间。
    3. 此超时值会影响节点故障的检测以及发生故障转移所需的时间。
  5. cluster-require-full-coverage 是
    1. 此选项指定集群是否要求节点覆盖所有插槽。
    2. yes 表示如果任一哈希槽未被至少一个节点覆盖,Redis 将停止接受写入。
    3. 此设置通过防止部分数据覆盖来确保整个集群的数据一致性和可用性。

这些配置选项将 Redis 设置为接受来自任何 IP 地址的连接、作为后台服务运行、启用具有特定节点超时的集群模式,并确保集群中数据槽的完全覆盖。

这时候可以取消所有会话

回到第一台Redis服务器上 也就是上传两个的服务器

安装 有助于在Ruby应用程序中与Redis进行交互

yum install -y ruby rubygems
gem install redis --version 3.2.0

gem install redis --version 3.2.0:

  • 目的:安装特定版本的Redis gem。

安装 Ruby 和 RubyGems 是安装 Redis gem 的先决条件,Redis gem 是一个用于与 Redis 交互的 Ruby 库。

cd /usr/src/redis-3.2.9/src/./redis-trib.rb create --replicas 1 192.168.192.112:6379 192.168.192.111:6379 192.168.192.113:6379 192.168.192.114:6379 192.168.192.116:6379 192.168.192.100:6379 
  • 这个命令使用脚本创建一个Redis集群。redis-trib.rb
  • create参数表示执行创建集群的操作。
  • --replicas 1表示每个主节点将有一个从节点作为副本。
  • 后面跟随的是一系列的节点地址(格式为),这些地址是将要加入到集群中的Redis实例。IP:PORT

查看群集状态

 ./redis-trib.rb check 192.168.192.100:6379

redis-trib.rb 是 Redis 提供的一个 Ruby 脚本工具,用于管理和维护 Redis 集群。 命令会对指定的 Redis 节点(在这里是 )进行以下检查:check192.168.192.100:6379

  • 节点健康状况检查:确保节点在线并可以正常响应请求。
  • 节点配置检查:验证节点的配置是否正确,确保节点之间的一致性。
  • 集群状态检查:检查集群的状态,看是否存在分片失效、数据不一致等问题。
  • 副本同步检查:确保主从节点之间的数据同步正常。
  • 槽分配检查:检查每个节点分配的槽,确保槽的分配符合预期。

4.测试群集

登录Redis群集 设置键值测试 跟上 '-c'选项激活群集模式

[root@localhost src]# redis-cli -h 192.168.192.111 -p 6379 -c
192.168.192.111:6379> set a 1
-> Redirected to slot [15495] located at 192.168.192.113:6379
OK
192.168.192.113:6379> set a 2
OK
192.168.192.113:6379> set b 2
-> Redirected to slot [3300] located at 192.168.192.112:6379
OK
192.168.192.112:6379> set c 2
-> Redirected to slot [7365] located at 192.168.192.111:6379
OK
192.168.192.111:6379> set d 2
-> Redirected to slot [11298] located at 192.168.192.113:6379
OK
192.168.192.113:6379> get a
"2"
192.168.192.113:6379> get b
-> Redirected to slot [3300] located at 192.168.192.112:6379
"2"
192.168.192.112:6379> get c
-> Redirected to slot [7365] located at 192.168.192.111:6379
"2"
192.168.192.111:6379> get d
-> Redirected to slot [11298] located at 192.168.192.113:6379
"2"
上述过程中库
看到到登录的是群集中的任意一台服务器,当创建键值的时候,重定向到其他服务器上,按照slot分配的

5.测试结果分析

  • 1.数据的一致性:从结果中可以看到,每次重定向后,执行 操作时,数据都成功写入对应的节点。通过 操作也可以验证数据在正确的槽和节点上。setget
  • 2.槽分配
    • 键 映射到槽 15495,所在节点是 。a192.168.192.113:6379
    • 键 映射到槽 3300,所在节点是 。b192.168.192.112:6379
    • 键 映射到槽 7365,所在节点是 。c192.168.192.111:6379
    • 键 映射到槽 11298,所在节点是 。d192.168.192.113:6379

6.总结

  • 3.一致性验证:通过多次 操作,可以验证每个键的值和预期一致,并且重定向到正确的节点,说明集群的槽分配和数据存储正常。get

通过上述测试可以看出,Redis 集群能够正确地重定向请求,确保数据存储和读取的正确性。 命令可以帮助验证这些节点和配置是否一切正常,是保障 Redis 集群稳定运行的重要工具。./redis-trib.rb check

"成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!"

"每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。"

神秘泣男子

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/47943.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux应用——网络基础

一、网络结构模型 1.1C/S结构 C/S结构——服务器与客户机; CS结构通常采用两层结构,服务器负责数据的管理,客户机负责完成与用户的交互任务。客户机是因特网上访问别人信息的机器,服务器则是提供信息供人访问的计算机。 例如&…

C++仓库管理系统

功能 代码在效果图后面 1.添加物品 2.删除物品 3.更新物品数量 4.查询物品 5.列出所有物品 6.保存并退出 注意事项:退出要输入“6”退出才能保存数据,不要直接按X关掉窗口(不会保存数据)。 效果图 源代码 编…

安全防御2

实验要求: 实验过程: 7,办公区设备可以通过电信链路和移动链路上网(多对多的NAT,并且需要保留一个公网IP不能用来转换): 新建电信区: 新建移动区: 将对应接口划归到各自区域: 新建…

JVM--自动内存管理--JAVA内存区域

1. 运行时数据区域 灰色的线程共享,白色的线程独享 白色的独享就是根据个体"同生共死" 程序计数器: 是唯一一个没有OOM(内存溢出)的地方 是线程独享的 作用: 是一块较小的内存空间,是当前线程所执行的字节吗的行号指示器 由于…

云监控(华为) | 实训学习day2(10)

spring boot基于框架的实现 简单应用 - 用户数据显示 开发步骤 第一步:文件-----》新建---项目 第二步:弹出的对话框中,左侧选择maven,右侧不选任何内容. 第三步,选择maven后,下一步 第4步 :出现对话框中填写项目名称 第5步&…

全面了解不同GPU算力型号的价格!

这两年人工智能(AI)、机器学习(ML)、深度学习和高性能计算(HPC)领域的快速发展,GPU算力已成为不可或缺的资源。企业、研究机构乃至个人开发者越来越依赖于GPU加速计算来处理大规模数据集和复杂模…

如何将大模型应用到自己的业务中?7种大模型应用方式和代表论文总结

如何将大模型应用落地到自己的业务或工作中?这篇文章整理了7种目前业内最常用的大模型应用方法,以及各个方法的代表论文。通过对各种应用大模型方法的特点对比,找到最适合自己场景的应用方法。 1 Pretrain-Finetune 直接针对下游任务进行全…

Linux介绍和文件管理

一Linux的起源 1.Unix Dennis Ritchie和Ken Thompson发明了C语言,而后写出了Unix的内核 2.Minix MINIX是一种基于微 内核架构的类UNIX计算机操作系统,由 Andrew S. Tanenbaum发明 3.Linux内核 芬兰赫尔辛基大学的研究生Linus Torvalds基于Gcc、 ba…

分布式存储之 ceph 管理操作

一.资源池 Pool 管理 我们已经完成了 Ceph 集群的部署,但是我们如何向 Ceph 中存储数据呢?首先我们需要在 Ceph 中定义一个 Pool 资源池。Pool 是 Ceph 中存储 Object 对象抽象概念。我们可以将其理解为 Ceph 存储上划分的逻辑分区,Pool 由…

ELK日志收集

一、什么是ELK ELK 是由 Elasticsearch、Logstash、Kibana 三个开源软件的组成的一个组合体,ELK 是 elastic 公司研发的一套完整的日志收集、分析和展示的企业级解决方案。 ELK 的好处: ELK 组件在大数据运维系统中,主要可解决的问题如下&…

适用于 Android 的恢复应用程序合集分享

丢失重要文件或数据从来都不是一件有趣的事。这种情况可能发生在您的计算机和笔记本电脑上,也可能发生在您的 Android 智能手机或平板电脑上。然而,尽管 Android 用户可能认为在这种情况下他们可用的选择较少,但用于 Android 数据恢复的应用程…

自定义注解 + Redis 实现业务的幂等性

1.实现幂等性思路 实现幂等性有两种方式: ⭐ 1. 在数据库层面进行幂等性处理(数据库添加唯一约束). 例如:新增用户幂等性处理,username 字段可以添加唯一约束. ⭐ 2. 在应用程序层面进行幂等性处理. 而在应用程序…

C#医学影像管理系统源码(VS2013)

目录 一、概述 二、系统功能 系统维护 工作站 三、功能介绍 影像采集 统计模块 专业阅片 采集诊断报告 报告管理 一、概述 医学影像存储与传输系统(PACS)是一种集成了影像存储、传输、管理和诊断功能的系统。它基于数字化成像技术、计算机技术和…

大模型+编程,未来程序员躺平还是失业?

自然语言大模型编程可以更好地理解用户的需求,然后输出对应代码。 最近英伟达让AI自动写代码的开源神器已上线,Nvidia推出了Code Llama在线体验页面,Code Llama 是 Llama 2 的代码专用版本,无需注册,无需本地部署&…

Jangow

关于靶场环境配置,确实这个靶场存在很大的问题,不仅仅是网络的配置问题,更重要的是明知道如何修改网络环境配置,但是键盘存在很大的问题。许多字符输入不一致。 Vulnhub靶场,Jangow靶机环境找不到ip解决方法。_jangow…

基于springboot新生宿舍管理系统

系统背景 在当今高等教育日益普及的时代背景下,高校作为知识传播与创新的重要基地,其基础设施的智能化管理显得尤为重要。新生宿舍作为大学生活的起点,不仅是学生日常生活与学习的重要场所,也是培养学生独立生活能力和团队合作精神…

Ubuntu 24.04 LTS 桌面安装MT4或MT5 (MetaTrader)教程

运行脚本即可在 Ubuntu 24.04 LTS Noble Linux 上轻松安装 MetaTrader 5 或 4 应用程序,使用 WineHQ 进行外汇交易。 MetaTrader 4 (MT4) 或 MetaTrader 5 是用于交易外汇对和商品的流行平台。它支持各种外汇经纪商、内置价格分析工具以及通过专家顾问 (EA) 进行自…

项目实用linux 操作详解-轻松玩转linux

我之前写过完整的linux系统详解介绍: LInux操作详解一:vmware安装linux系统以及网络配置 LInux操作详解二:linux的目录结构 LInux操作详解三:linux实际操作及远程登录 LInux操作详解四:linux的vi和vim编辑器 LInux操作…

VPN以及GRE和MGRE

VPN VPN — 是虚拟专用网络 通俗地说,就是通过虚拟的手段,将两个独立的网络,穿越一个公共网络进行连接,实现点到点专线的效果(可以理解为:一个分公司通过公网和总公司建立点到点的专线连接) 现…

数据库理论基础

1.什么是数据库 1.1数据 描述事物的符号记录, 可以是数字、 文字、图形、图像、声音、语言等,数据有多种形式,它们都可以经过数字化后存入计算机。 1.2数据库 存储数据的仓库,是长期存放在计算机内、有组织、可共享的大量数据…