Redis Cluster(Redis 集群)的搭建

本文详细介绍了Redis集群的搭建过程,包括至少六个节点的配置,伪分布式环境的搭建,以及通过修改端口号和配置文件实现的服务启动。同时,深入解析了Redis集群的投票容错机制,阐述了节点间通过ping-pong判断连接状态,以及哈希槽分配原理。

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

1、redis-cluster(redis集群)

redis-cluster投票容错机制:Redis 之间通过互相的 ping-pong 判断是否节点可以连接上。如果有一半以上的节点去ping 一个节点的时候没有回应,集群就认为这个节点宕机了,然后去连接它的从节点(必须主备模式)。
如果某个节点和所有从节点全部挂掉,集群就进入 fail 状态。 如果有一半以上的主节点宕机,那么集群同样进入 fail 了状态。
由于投票容错机制集群最少需要3个节点

Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。

根据Redis槽的概念集群最多16384个

2、集群搭建

Redis集群中至少应该有三个节点。要保证集群的高可用,需要每个节点有一个备份机,因此Redis集群至少需要6台服务器。
搭建伪分布式。使用一台虚拟机运行6个redis实例。需要修改redis的端口号为7001-7006.
在/usr/local目录下创建redis-cluster目录,并将redis目录下的redis安装文件复制到redis-cluster目录

cd /usr/local
mkdir redis-cluster
cp redis/bin redis-cluster/redis01 -r

删除复制文件中的数据文件包括dump.rdb和.aof文件

cd /usr/local/redis-cluster/redis01
rm -f dump.rdb


修改redis.conf文件

vim redis.conf
#修改端口号
port 7001
#将 cluster-enabled yes的注释打开


将redis01再复制5份

cd ..
cp -r redis01/ redis02
...
cp -r redis01/ redis06

分别修改端口号为7002-7006

批处理启动6个redis服务

#创建一个批处理文件
vim start-all.sh
加入代码
cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..
#保存退出


现在文件还不能执行,需要授权

chmod u+x start-all.sh

、

#执行
./start-all.sh
查看是否启动成功
ps aux|grep redis


搭建集群需要redis源文件的.rb脚本
找到redis源文件中的src/redis-trib.rb文件,并将之复制到redis-cluster目录下

cd  /usr/local/redis/redis-5.0.3/src
cp redis-trib.rb /usr/local/redis-cluster/


因为使用的是ruby脚本搭建服务器,所以需要ruby环境

2.1、安装ruby环境
#这两个旧版本先别装会报错,往后看,装新版本
yum install ruby    
yum install rubygems

下载 redis-3.0.0.gem
下载链接:redis-3.0.0.gem
提取码:fs2u
将redis-3.0.0.gem传到linux系统下并安装
安装gem install redis-3.0.0.gem
执行redis-trib.rb脚本文件

./redis-trib.rb create --replicas 1 ip:7001 ip:7002 ip:7003 ip:7004 ip:7005 ip:7006

报错

ruby版本问题
卸载低版本

yum remove -y ruby
yum remove -y rubygems

官网下载新版本
ruby

#解压
 
tar –zxvf ruby-2.6.6.tar.gz
cd ruby-2.6.6
./configure
make 
make install

进入任意redis实例

cd redis01
#新版本命令修改为
./redis-cli --cluster create ip:7001 ip:7002 ip:7003 ip:7004 ip:7005 ip:7006 --cluster-replicas 1


这儿有个坑!!!下面是输入yes分配槽,只输y不行

2.2、连接节点操作数据库

进入任意实例使用redis-cli连接节点

cd redis01
./redis-cli -h ip地址 -p 7001 -c


计算出槽后将数据放在了7003上

一、Redis服务器搭建与学习
三、SSM整合Redis Cluster(Redis集群)
四、Redis集群踩的坑及报错记录并解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值