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

这篇具有很好参考价值的文章主要介绍了一台服务器上部署 Redis 伪集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

哈喽大家好,我是咸鱼

今天这篇文章介绍如何在一台服务器(以 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 的最新特性保持一致

我们先把架构画出来,这样后面部署的时候就很方便了
一台服务器上部署 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 文件和日志文件存放目录

mkdir -pv /var/data/{6379,6380,6381,26379,26380,26381}

mkdir /usr/local/redis-4.0.9/{pid,log} -pv

安装 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

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

cd redis-4.0.9/ && make && make install

配置并开启 Redis 服务

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

ll /usr/local/redis-4.0.9/
-rwxr-xr-x  1 root root   1524 Aug 24 17:21 redis-26379.conf
-rwxr-xr-x  1 root root   1524 Aug 24 17:18 redis-26380.conf
-rwxr-xr-x  1 root root   1524 Aug 24 17:18 redis-26381.conf
-rwxr-xr-x  1 root root   1519 Aug 24 17:21 redis-6379.conf
-rwxr-xr-x  1 root root   1519 Aug 24 17:17 redis-6380.conf
-rwxr-xr-x  1 root root   1519 Aug 24 17:17 redis-6381.conf

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

# 需要改动的地方
...
port 6379
...
pidfile /usr/local/redis-4.0.9/pid/redis-6379.pid
...
logfile /usr/local/redis-4.0.9/log/redis-6379.log
...
dir /var/data/6379
...
cluster-config-file nodes-6379.conf
...

配置好之后,六个 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

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

# 验证是否安装成功
[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
# 安装 ruby
/usr/local/rvm/bin/rvm install ruby-3.0.0

# 验证 ruby 版本
ruby -v

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

/usr/local/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- redis (LoadError)
from /usr/local/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from ./redis-trib.rb:25:in `<main>'

根据提示可以知道 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

一台服务器上部署 Redis 伪集群
由上图可以看到

master 1: 192.168.149.131:6379 ;slave 1:192.168.149.131:26380
master 2: 192.168.149.131:26381;slave 2:192.168.149.131:6380
master 3: 192.168.149.131:26379;slave 3:192.168.149.131:6381
# 查看集群信息
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

[root@localhost /usr/local/redis-4.0.9]# redis-cli -c -p 6379
127.0.0.1:6379> set name Edison
-> Redirected to slot [5798] located at 192.168.149.131:26379
OK

然后我们在 slave 3 上查看有没有这个数据,是否同步完毕文章来源地址https://www.toymoban.com/news/detail-679545.html

[root@localhost /usr/local/redis-4.0.9]# redis-cli -c -p 26379
127.0.0.1:26379> get name
"Edison"

到了这里,关于一台服务器上部署 Redis 伪集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • C++集群聊天服务器 nginx+redis安装 笔记 (中)

    C++集群聊天服务器 nginx+redis安装 笔记 (中)

    一、nginx安装 nginx: download 下载nginx安装包 二、redis安装 Install Redis on Linux | Redis 集群聊天服务器推荐和参考文章,下文部分文字来自这篇文章: 集群聊天服务器:三、集群代码实现_网络编程多服务端集群怎么实现-CSDN博客 https://blog.csdn.net/qq_42441693/article/details/129167974?spm=100

    2024年02月19日
    浏览(8)
  • Redis持久化说明及其单台Linux服务器搭建Redis集群架构

    Redis持久化说明及其单台Linux服务器搭建Redis集群架构

    说明:RDB快照主要以二进制文件的形式进行存储数据,主要以文件名dump.rdb进行存储,主要设置redis.conf里面设置’save 60 1000’命令可以开启, 表示在60秒内操作1000次进行一次备份数据。在客户端执行save(同步)和bgsave(异步操作)。 redis.conf 启动redis相关命令 说明:主要把文件生

    2024年02月10日
    浏览(15)
  • docker服务器中redis-cluster集群配置(redis-5.0.7)

    因为需要使用到docker服务器下的redis-cluster集群环境,而以前redis3.2.8版本的redis搭配起来费事费力还没有成功,所以使用了较新一些的redis版本----redis-5.0.7。 默认:dockers已经安装成功 1.1下载tar包 1.2把进行安装 2.1 编写配置文件 #编写目录 mkdir -p /usr/local/docker-redis/redis-cluster #切

    2024年02月21日
    浏览(12)
  • 基于ssm+shiro+redis+nginx tomcat服务器集群管理项目

    毕业设计——基于ssm+shiro+redis+nginx tomcat服务器集群管理项目 完整项目地址:https://download.csdn.net/download/lijunhcn/88430549 1.搭建一个最简洁,模块划分最明确的ssm+swargger+shiro+redis+nginx整合项目,采用maven作为构建工具,在有新项目开发时可以借助此demo快速构建项目 2.实现shiro的授

    2024年02月03日
    浏览(11)
  • 远程服务器,使用docker搭建redis集群提示:SlaveConnectionPool no available Redis entries

    远程服务器,使用docker搭建redis集群提示:SlaveConnectionPool no available Redis entries

    1、部署条件:         1.1 远程服务器         1.2 docker部署:参考 https://blog.csdn.net/qq_42971035/article/details/128171542  2、出现问题:         2.1 服务器部署服务,连接redis集群,会提示\\\"SlaveConnectionPool no available Redis entries\\\"。         2.2 本地连接远程服务器,提示\\\"connection 

    2024年02月15日
    浏览(17)
  • 云服务器上使用Docker Compose创建Redis三主三从集群

    云服务器上使用Docker Compose创建Redis三主三从集群

    云服务器 Ubuntu20.4 Dokcer 24.0.2 目录结构是这样: 绿色的目录是用来存储容器中的文件,不需要我们手动创建,将路径配置在配置文件中即可。黑色的目录和文件需要自己手动创建。  我们一共创建7个容器: redis1~redis6是集群节点,redis_cluster是用来搭建主从关系的一个容器,搭

    2024年02月09日
    浏览(14)
  • minio集群部署,4台服务器+1台nginx

    分布式Minio里所有的节点需要有同样的access秘钥和secret秘钥,即:用户名和密码 分布式Minio存放数据的磁盘目录必须是空目录 分布式Minio官方建议生产环境最少4个节点,因为有N个节点,得至少保证有N/2的节点才能可读,保证至少N/2+1的节点才能可写。这里只是作演示搭建,只

    2024年02月15日
    浏览(12)
  • 毕业设计——基于ssm+shiro+redis+nginx tomcat服务器集群管理项目

    毕业设计——基于ssm+shiro+redis+nginx tomcat服务器集群管理项目 完整项目地址:https://download.csdn.net/download/lijunhcn/88430549 1.搭建一个最简洁,模块划分最明确的ssm+swargger+shiro+redis+nginx整合项目,采用maven作为构建工具,在有新项目开发时可以借助此demo快速构建项目 2.实现shiro的授

    2024年02月04日
    浏览(7)
  • Temporal部署指南:集群架构、服务器部署流程、部署细节及Temporal UI配置

    本文详细介绍了Temporal的部署流程,包括集群架构、Temporal Server的部署流程、部署细节以及Temporal UI的配置。通过指南,您可以了解到如何部署Temporal到生产环境,并对服务器配置、数据库设置、以及UI部署有清晰的指导。

    2024年02月04日
    浏览(21)
  • nginx 如何实现一台服务器挂了访问另外一台服务器

    如果您想通过 Nginx 实现在 example1.com 服务器挂掉的情况下自动切换到 example2.com 服务器,可以使用 Nginx 的代理模块和负载均衡功能。 以下是一个示例的 Nginx 配置,实现了当 example1.com 服务器不可用时,自动切换到 example2.com 服务器: 在上述示例中: upstream 块定义了服务器组

    2024年02月12日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包