Linux 模拟搭建redis集群

本文详细介绍了如何在Linux环境中搭建Redis集群,包括安装ruby环境,使用redis-trib.rb创建集群,配置并启动各个节点,以及连接和管理集群。步骤清晰,适合初学者实践。

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

1,redis集群管理工具redis-trib.rb依赖ruby环境,首先需要安装ruby环境:
1.1,安装ruby
[root@localhost ~]# yum install ruby
[root@localhost ~]# yum install rubygems

1.2,安装ruby和redis的接口程序
下载 https://rubygems.org/gems/redis/:redis-3.0.0.gem。上传到Linux。
拷贝redis-3.0.0.gem至/usr/local下 ,执行:

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

2,创建集群
(这里在同一台虚拟机用不同的端口表示6台不同的redis服务器)
主节点:192.168.84.128:9001 192.168.84.128:9002 192.168.84.128:9003
从节点:192.168.84.128:9004 192.168.84.128:9005 192.168.84.128:9006

2.1, 在/usr/local下创建redis-cluster目录,其下创建redis1、redis2、redis3、....redis6目录,
[root@localhost ~]# cd /usr/local
[root@localhost ~]# mkdir redis-cluster
[root@localhost ~]# cd redis-cluster
[root@localhost redis-cluster]# mkdir redis1 redis2 redis3 redis4 redis5 redis6

[root@localhost redis-cluster]# ll
total 0
drwxr-xr-x 2 root root 6 Jun 21 17:18 redis1
drwxr-xr-x 2 root root 6 Jun 21 17:18 redis2
drwxr-xr-x 2 root root 6 Jun 21 17:18 redis3
drwxr-xr-x 2 root root 6 Jun 21 17:18 redis4
drwxr-xr-x 2 root root 6 Jun 21 17:18 redis5
drwxr-xr-x 2 root root 6 Jun 21 17:18 redis6


2.2,将redis安装目录bin下的文件拷贝到每个刚刚新建redis1-redis6目录内,同时将redis源码目录src下的redis-trib.rb拷贝到redis-cluster目录下。


2.2.1拷贝redis.conf
[root@localhost redis-cluster]# cp /usr/local/redis/bin /usr/local/redis-cluster/redis1 -rf
[root@localhost redis-cluster]# cp /usr/local/redis/bin /usr/local/redis-cluster/redis2 -rf
[root@localhost redis-cluster]# cp /usr/local/redis/bin /usr/local/redis-cluster/redis3 -rf
[root@localhost redis-cluster]# cp /usr/local/redis/bin /usr/local/redis-cluster/redis4 -rf
[root@localhost redis-cluster]# cp /usr/local/redis/bin /usr/local/redis-cluster/redis5 -rf
[root@localhost redis-cluster]# cp /usr/local/redis/bin /usr/local/redis-cluster/redis6 -rf

2.2.2,修改redis1-redis6每一个目录下的redis.conf配置文件(每一个文件都要修改)
[root@localhost redis-cluster]# vim  /usr/local/lyxlove/redis6/bin/redis.conf
修改下面内容:
port 900X //修改端口号,900X 对应自己定义的端口
cluster-enabled yes //去掉注释

:wq 保存退出。


2.3,启动每个结点redis服务
可以编辑命令启动:
[root@localhost redis-cluster]# vim startall.sh

命令内容(用编写文件方式启动多个redis,不用每一个都启动):
cd ./9001
./bin/redis-server ./bin/redis.conf
cd ..
cd ./9002
./bin/redis-server ./bin/redis.conf
cd ..
cd ./9003
./bin/redis-server ./bin/redis.conf
cd ..
cd ./9004
./bin/redis-server ./bin/redis.conf
cd ..
cd ./9005
./bin/redis-server ./bin/redis.conf
cd ..
cd ./9006
./bin/redis-server ./bin/redis.conf
cd ..

2.4,执行redis-trib.rb,此脚本是ruby脚本,它依赖ruby环境。(/usr/local/redis-cluster 目录下需要有 redis-trib.rb 文件,否则执行出错。
[root@localhost redis-cluster]# ./redis-trib.rb create --replicas 1 192.168.84.128:9001 192.168.84.128:9002 192.168.84.128:9003 192.168.84.128:9004 192.168.84.128:9005  192.168.84.128:9006


注意:如果以前去安装过redis的。执行时报如下错误:

[ERR] Node XXXXXX is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0

解决方法:是删除生成的配置文件nodes.conf,如果不行则说明现在创建的结点包括了旧集群的结点信息,需要删除redis的持久化文件后再重启redis,比如:appendonly.aof、dump.rdb

2.5, 连接集群中的某个节点。
[root@localhost redis-cluster]#./redis1/bin/redis-cli -c -h 192.168.84.128 -p 9001

其中-c表示以集群方式连接redis,-h指定ip地址,-p指定端口号
如果没有-c,连接上了以后也不能set,get 数据。

cluster nodes 查询集群结点信息
cluster info 查询集群状态信息

2.6 关闭redis集群。
编写shutdown.sh命令:

[root@localhost redis-cluster]# vim shutdown.sh

./7001/bin/redis-cli -p 9001 shutdown
./7002/bin/redis-cli -p 9002 shutdown
./7003/bin/redis-cli -p 9003 shutdown
./7004/bin/redis-cli -p 9004 shutdown
./7005/bin/redis-cli -p 9005 shutdown
./7006/bin/redis-cli -p 9006 shutdown

 

简单总结(4步):

(1)安装ruby和接口
(2)复制bin和redis-trib.rb
(3)修改redis.conf
(4)启动

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值