🏡作者主页:点击!
🐧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
命令解释:
绑定 0.0.0.0:
- 此选项将 Redis 配置为接受来自所有 IP 地址的连接
守护进程是
:- 此选项指示 Redis 作为后台守护程序运行。
yes
意味着 Redis 将作为守护进程在后台运行,允许在启动 Redis 后释放终端。
已启用群集 是
:- 此选项将启用 Redis 集群模式。
yes
表示Redis将以集群模式运行,允许多个Redis节点组成集群,以提高可扩展性和容错能力。- 在集群模式下,数据会自动跨多个节点进行分片。
cluster-node-timeout 15000
:- 此选项设置群集节点操作的超时(以毫秒为单位)。
15000
毫秒(15 秒)是 Redis 在认为节点不可用之前等待节点响应的时间。- 此超时值会影响节点故障的检测以及发生故障转移所需的时间。
cluster-require-full-coverage 是
:- 此选项指定集群是否要求节点覆盖所有插槽。
yes
表示如果任一哈希槽未被至少一个节点覆盖,Redis 将停止接受写入。- 此设置通过防止部分数据覆盖来确保整个集群的数据一致性和可用性。
这些配置选项将 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
- 键 映射到槽 15495,所在节点是 。
6.总结
- 3.一致性验证:通过多次 操作,可以验证每个键的值和预期一致,并且重定向到正确的节点,说明集群的槽分配和数据存储正常。
get
通过上述测试可以看出,Redis 集群能够正确地重定向请求,确保数据存储和读取的正确性。 命令可以帮助验证这些节点和配置是否一切正常,是保障 Redis 集群稳定运行的重要工具。./redis-trib.rb check
"成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!"
"每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。"
神秘泣男子