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

深入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

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

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

神秘泣男子

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MybatisPlus的使用与详细讲解
  • 排序算法与复杂度介绍
  • Linux的shell的date命令
  • Spring Boot 与 Amazon S3:快速上传与下载文件的完整指南
  • 从PyTorch官方的一篇教程说开去(4 - Q-table来源及解决问题实例)
  • LeetCode 125.验证回文串 C++写法
  • RDMA通信4:MR(Memory Region, 内存区域)基本概念和作用
  • html改写vue日志
  • 【银河麒麟服务器操作系统】java进程oom现象分析及处理建议
  • 计数,桶与基数排序
  • 建投数据人力资源系列产品获得欧拉操作系统及华为鲲鹏技术认证书
  • vue2 使用代码编辑器插件 vue-codemirror
  • 力扣题解(组合总和IV)
  • spark shell
  • 汽车及零部件研发项目管理系统:一汽东机工选择奥博思 PowerProject 提升研发项目管理效率
  • ➹使用webpack配置多页面应用(MPA)
  • 78. Subsets
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • co.js - 让异步代码同步化
  • create-react-app做的留言板
  • CSS 专业技巧
  • CSS相对定位
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • happypack两次报错的问题
  • Java面向对象及其三大特征
  • mysql常用命令汇总
  • MySQL用户中的%到底包不包括localhost?
  • - 概述 - 《设计模式(极简c++版)》
  • 聚簇索引和非聚簇索引
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 微信小程序开发问题汇总
  • 用mpvue开发微信小程序
  • 我们雇佣了一只大猴子...
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​Java并发新构件之Exchanger
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • #Datawhale AI夏令营第4期#AIGC文生图方向复盘
  • #pragma data_seg 共享数据区(转)
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (BFS)hdoj2377-Bus Pass
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (solr系列:一)使用tomcat部署solr服务
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (算法)大数的进制转换
  • (转)关于pipe()的详细解析
  • .env.development、.env.production、.env.staging
  • .NET Core 2.1路线图
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .NET开发者必备的11款免费工具
  • .NET序列化 serializable,反序列化