redis-cluster伪集群搭建

本文详细介绍如何搭建一个包含六个节点的Redis集群,包括安装gcc、ruby,编译Redis源码,配置集群并使用ruby脚本完成集群搭建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4.2.1搭建要求

需要 6 台 redis 服务器。搭建伪集群。

需要 6 个 redis 实例。

需要运行在不同的端口 7001-7006

4.2.2准备工作

(1)安装gcc 【此步省略】

Redis 是 c 语言开发的。安装 redis 需要 c 语言的编译环境。如果没有 gcc 需要在线安装。

yum install gcc-c++

(2)使用yum命令安装 ruby  (我们需要使用ruby脚本来实现集群搭建)【此步省略】

yum install ruby

yum install rubygems

 

----- 知识点小贴士 -----

Ruby,一种简单快捷的面向对象面向对象程序设计脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 PerlSmalltalkEiffelAda以及 Lisp 语言。由 Ruby 语言本身还发展出了JRubyJava平台)、IronRuby.NET平台)等其他平台的 Ruby 语言替代品Ruby的作者于1993224日开始编写Ruby,直至199512月才正式公开发布fj新闻组)。因为Perl发音与6月诞生石pearl珍珠)相同,因此Ruby7月诞生石ruby红宝石)命名

RubyGems简称gems,是一个用于对 Ruby组件进行打包的 Ruby 打包系统

(3)将redis源码包上传到 linux 系统  ,解压redis源码包

(4)编译redis源码  ,进入redis源码文件夹(解压后的目录文件夹下)

make

看到以下输出结果,表示编译成功

(5)创建目录/usr/local/redis-cluster目录,  安装6个redis实例,分别安装在以下目录

/usr/local/redis-cluster/redis-1

/usr/local/redis-cluster/redis-2

/usr/local/redis-cluster/redis-3

/usr/local/redis-cluster/redis-4

/usr/local/redis-cluster/redis-5

/usr/local/redis-cluster/redis-6

以第一个redis实例为例,命令如下

make install PREFIX=/usr/local/redis-cluster/redis-2

出现此提示表示成功,按此方法安装其余5个redis实例

(6)复制配置文件  将 /redis-3.0.0/redis.conf 复制到redis下的bin目录下

[root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis-cluster/redis-1/bin

[root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis-cluster/redis-2/bin

[root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis-cluster/redis-3/bin

[root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis-cluster/redis-4/bin

[root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis-cluster/redis-5/bin

[root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis-cluster/redis-6/bin

 

3.2.3配置集群

(1)修改每个redis节点的配置文件redis.conf

修改运行端口为7001 (7002 7003 .....)

补充:快速在文件中找到需要修改的地方。如我们需要修改文件中的fork的值,需要按空格键,在使用/fork,按enter键,就找到fork。如果文件中有多个fork,按N键就可以找到下一个fork,只到找到为止

将cluster-enabled yes 前的注释去掉(632行)

(2)启动每个redis实例

以第一个实例为例,命令如下

cd /usr/local/redis-cluster/redis-1/bin/

./redis-server redis.conf

 

把其余的5个也启动起来,然后查看一下是不是都启动起来了

[root@localhost ~]# ps -ef | grep redis

root     15776 15775  0 08:19 pts/1    00:00:00 ./redis-server *:7001 [cluster]

root     15810 15784  0 08:22 pts/2    00:00:00 ./redis-server *:7002 [cluster]

root     15831 15813  0 08:23 pts/3    00:00:00 ./redis-server *:7003 [cluster]

root     15852 15834  0 08:23 pts/4    00:00:00 ./redis-server *:7004 [cluster]

root     15872 15856  0 08:24 pts/5    00:00:00 ./redis-server *:7005 [cluster]

root     15891 15875  0 08:24 pts/6    00:00:00 ./redis-server *:7006 [cluster]

root     15926 15895  0 08:24 pts/7    00:00:00 grep redis

 

(3)上传redis-3.0.0.gem 安装 ruby用于搭建redis集群的脚本。

[root@localhost ~]# gem install redis-3.0.0.gem

Successfully installed redis-3.0.0

1 gem installed

Installing ri documentation for redis-3.0.0...

Installing RDoc documentation for redis-3.0.0...

(4)使用 ruby 脚本搭建集群。

进入redis源码目录中的src目录(有redis-trib.rb脚本)  执行下面的命令

./redis-trib.rb create --replicas 1 192.168.88.128:7001 192.168.88.128:7002 192.168.88.128:7003

192.168.88.128:7004 192.168.88.128:7005 192.168.88.128:7006

出现下列提示信息

>>> Creating cluster

Connecting to node 192.168.25.140:7001: OK

Connecting to node 192.168.25.140:7002: OK

Connecting to node 192.168.25.140:7003: OK

Connecting to node 192.168.25.140:7004: OK

Connecting to node 192.168.25.140:7005: OK

Connecting to node 192.168.25.140:7006: OK

>>> Performing hash slots allocation on 6 nodes...

Using 3 masters:

192.168.25.140:7001

192.168.25.140:7002

192.168.25.140:7003

Adding replica 192.168.25.140:7004 to 192.168.25.140:7001

Adding replica 192.168.25.140:7005 to 192.168.25.140:7002

Adding replica 192.168.25.140:7006 to 192.168.25.140:7003

M: 1800237a743c2aa918ade045a28128448c6ce689 192.168.25.140:7001

   slots:0-5460 (5461 slots) master

M: 7cb3f7d5c60bfbd3ab28800f8fd3bf6de005bf0d 192.168.25.140:7002

   slots:5461-10922 (5462 slots) master

M: 436e88ec323a2f8bb08bf09f7df07cc7909fcf81 192.168.25.140:7003

   slots:10923-16383 (5461 slots) master

S: c2a39a94b5f41532cd83bf6643e98fc277c2f441 192.168.25.140:7004

   replicates 1800237a743c2aa918ade045a28128448c6ce689

S: b0e38d80273515c84b1a01820d8ecee04547d776 192.168.25.140:7005

   replicates 7cb3f7d5c60bfbd3ab28800f8fd3bf6de005bf0d

S: 03bf6bd7e3e6eece5a02043224497c2c8e185132 192.168.25.140:7006

   replicates 436e88ec323a2f8bb08bf09f7df07cc7909fcf81

Can I set the above configuration? (type 'yes' to accept): yes

>>> Nodes configuration updated

>>> Assign a different config epoch to each node

>>> Sending CLUSTER MEET messages to join the cluster

Waiting for the cluster to join....

>>> Performing Cluster Check (using node 192.168.25.140:7001)

M: 1800237a743c2aa918ade045a28128448c6ce689 192.168.25.140:7001

   slots:0-5460 (5461 slots) master

M: 7cb3f7d5c60bfbd3ab28800f8fd3bf6de005bf0d 192.168.25.140:7002

   slots:5461-10922 (5462 slots) master

M: 436e88ec323a2f8bb08bf09f7df07cc7909fcf81 192.168.25.140:7003

   slots:10923-16383 (5461 slots) master

M: c2a39a94b5f41532cd83bf6643e98fc277c2f441 192.168.25.140:7004

   slots: (0 slots) master

   replicates 1800237a743c2aa918ade045a28128448c6ce689

M: b0e38d80273515c84b1a01820d8ecee04547d776 192.168.25.140:7005

   slots: (0 slots) master

   replicates 7cb3f7d5c60bfbd3ab28800f8fd3bf6de005bf0d

M: 03bf6bd7e3e6eece5a02043224497c2c8e185132 192.168.25.140:7006

   slots: (0 slots) master

   replicates 436e88ec323a2f8bb08bf09f7df07cc7909fcf81

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值