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


make && 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.0
 daemonize yes
 cluster-enabled yes
 cluster-node-timeout 15000
 cluster-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

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

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

神秘泣男子

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 17:26:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 17:26:05       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 17:26:05       58 阅读
  4. Python语言-面向对象

    2024-07-19 17:26:05       69 阅读

热门阅读

  1. 5、PostgreSQL之数据定义

    2024-07-19 17:26:05       16 阅读
  2. yolov8pt转onnx(官方代码)

    2024-07-19 17:26:05       19 阅读
  3. PostgreSQL的Json数据类型如何使用

    2024-07-19 17:26:05       21 阅读
  4. ubuntu gcc g++版本切换

    2024-07-19 17:26:05       14 阅读
  5. 第 8 章 虚拟文件系统(3)

    2024-07-19 17:26:05       20 阅读
  6. linux yum,rpm,dkpg,apt区别

    2024-07-19 17:26:05       21 阅读
  7. 【C++】C++中find_first_of函数解析

    2024-07-19 17:26:05       19 阅读