文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

一台服务器上部署 Redis 伪集群

2024-11-30 08:55

关注

今天这篇文章介绍如何在一台服务器(以 CentOS 7.9 为例)上通过 redis-trib.rb 工具搭建 Redis cluster (三主三从)。redis-trib.rb 是一个基于 Ruby 编写的脚本,其功能涵盖了创建、管理以及维护 Redis 集群的各个方面。

值得注意的是,随着时间的推移,一些较新版本的 Redis 已经将 redis-trib.rb 标记为不推荐使用的工具。鉴于此,文章所采用的 Redis 版本为较老的 4.0.9 版本。

对于较新版本的 Redis,咸鱼建议采用 redis-cli 工具来进行集群的操作与管理,以确保与 Redis 的最新特性保持一致。

我们先把架构画出来,这样后面部署的时候就很方便了。

# 三个 Master
192.168.149.131:6379
192.168.149.131:6380
192.168.149.131:6381
# 三个 Slave
192.168.149.131:26379
192.168.149.131:26380
192.168.149.131:26381

需要注意的是,Redis Cluster 中,节点之间通过建立 TCP 连接,使用 gossip 协议来传播集群的信息,节点内部通信端口是服务端口 + 10000。

举个例子,启动 Redis 服务之后会有一个 6379 端口(对外端口)和一个 16379 端口(对内通信端口)。

开始部署

部署前准备

首先创建 Redis 存储目录,用来存放 rdb 文件等,接着创建 pid 文件和日志文件存放目录:

安装 Redis 以及相关依赖工具

我们先来安装 redis 以及相关依赖(需要能够访问到互联网):

# 安装相关依赖
yum install -y wget gcc gcc-c++ make tar openssl openssl-devel cmake
# 安装到 /usr/local 下
cd /usr/local/ && wget https://download.redis.io/releases/redis-4.0.9.tar.gz
# 解压缩
tar -xvf  redis-4.0.9.tar.gz

解压缩完毕之后我们进入目录开始编译安装:

配置并开启 Redis 服务

首先我们先来配置六个 Redis 服务的配置文件:

配置文件中需要改动的配置项是下面几个,其他的不变:

配置好之后,六个  Redis 服务依次启动:

/usr/local/redis-4.0.9/src/redis-server redis-6379.conf && /usr/local/redis-4.0.9/src/redis-server redis-26379.conf
/usr/local/redis-4.0.9/src/redis-server redis-6380.conf && /usr/local/redis-4.0.9/src/redis-server redis-26380.conf
/usr/local/redis-4.0.9/src/redis-server redis-6381.conf && /usr/local/redis-4.0.9/src/redis-server redis-26381.conf

搭建 Ruby 环境

redis-trib.rb 是一个 Ruby 脚本,用于创建、管理和维护 Redis 集群,它提供了一种命令行界面来执行各种集群操作,如添加节点、删除节点、平衡数据分布等,如果要使用 redis-trib.rb 这个 Ruby 脚本来管理 Redis Cluster,就需要安装 Ruby 解释器。

先下载 rvm 工具(网络问题多试几次):

#1.下载密钥
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -
#2.下载安装包(网络问题多试几次)
curl -L get.rvm.io | bash -s stable

# 验证是否安装成功
[root@localhost]# find / -name rvm
/usr/local/rvm
/usr/local/rvm/src/rvm
/usr/local/rvm/src/rvm/bin/rvm
/usr/local/rvm/src/rvm/lib/rvm
/usr/local/rvm/src/rvm/scripts/rvm
/usr/local/rvm/bin/rvm
/usr/local/rvm/lib/rvm
/usr/local/rvm/scripts/rvm
# 启用 RVM 的环境变量
source /etc/profile.d/rvm.sh
#查看依赖
rvm requirements
#验证 rvm 版本
rvm -v

PS:如果安装 ruby 之后使用 redis-trib.rb 工具发现报错:

根据提示可以知道 redis-trib.rb 脚本无法找到 redis 模块,导致加载失败,这通常是因为系统中缺少了所需的 Ruby Redis 模块或模块的版本问题。

运行以下命令安装 Redis Gem 模块:

# 安装 redis 模块,是 redis-trib.rb 脚本所需的依赖
gem install redis

创建 Redis 集群

创建集群(--replicas 1 表示指定每个 master 有一个 slave):

cd /usr/local/redis-4.0.9/ && ./src/redis-trib.rb create --replicas 1 \
192.168.149.131:6379 192.168.149.131:26379 192.168.149.131:6380 192.168.149.131:26380 192.168.149.131:6381 192.168.149.131:26381

由上图可以看到:

# 查看集群信息
cd /usr/local/redis-4.0.9/ && ./src/redis-trib.rb info 192.168.149.131:6379
cd /usr/local/redis-4.0.9/ && ./src/redis-trib.rb check 127.0.0.1:6379

验证

创建集群之后我们简单验证一下:写入一个数据,可以看到数据重定向到了 master 3:

然后我们在 slave 3 上查看有没有这个数据,是否同步完毕:

来源:咸鱼运维杂谈内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯