Liunx下安装集群版Redis详细步骤以及SpringCloud微服务链接集群版Redis演示

本文详述了在Linux CentOS 6.5系统下,离线安装Redis-3.2.8集群的步骤,包括集群原理、注意事项、数据存储方式,以及在没有互联网连接时的本地yum源配置。同时,文章介绍了使用ruby脚本创建集群时可能遇到的问题及其解决方法,并提及SpringCloud如何连接Redis集群。最后,提醒读者集群客户端应使用集群模式连接,以避免MOVED错误。

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

事前注意说明:
1、本文是基于Linux CentOS 6.5和Redis-3.2.8版本进行配置
2、本文是基于服务器离线(无网络)进行安装配置
3、如果你的服务器也是离线服务器(无法连接互联网),那么请先配置本地yum源
本地yum源配置请参考:Linux系统配置本地yum源
4、如果你还不会安装单机版Redis,详细步骤请参考:
Linux系统安装redis服务,配置密码

PS:需要注意的是,
(1)、上面第四部单机版redis安装的时候,全部采用的是默认地址安装,也就是说redis安装完成后bin目录会生成在默认的路径下面,有时候会找不到,使用起来不方便。如果想安装的时候生成在自己指定的目录下的话,需要在执行make install安装的时候指定PREFIX=安装路径
即:make install PREFIX=你的安装路径
这样安装后的redis的bin目录以及可执行文件都会在你指定的目录下生成,当然还有redis.conf配置文件。
(2)、redis最好不要配置开机启动,只需配置可后台运行即可。这样的话每次启动时可指定特定的配置文件启动(个人建议)。

好,准备好前事以后,我们就开始今天的正式内容:

一、Redis集群的原理

在操作之前我们先简单说一下Redis集群的原理以及为什么要安装Redis集群呢?
大家都知道,Redis是在内存中保存数据的,这也就意味着Redis不适合存储大数据,适合存储大数据的是Hadoop生态系统的Hbase或者MogoDB。Redis更适合处理高并发,一台设备的存储能力是有限的,但是多台设备系统合作,就可以让内存增大很多倍,这就需要到了集群。
Redis集群搭建的方式有很多种,例如使用客户端分片、Twemproxy、Codis等,但是在Redis3.0版本之后,Redis支持Redis-Cluster集群方案,它是Redis官方提出来的解决方案。Redis-Cluster采用无中心结构,每个节点保存数据和集群状态,每个节点又都和其他所有节点链接。

二、Redis集群注意事项

1、强烈不推荐在一台服务器上部署多台Redis实现集群,原因大家都很清楚了,redis是运行在内存中的。
2、Redis的集群节点数必须是奇数个,最少是3个,可以有主从。
3、所有集群节点的数据合起来才是完整的数据。
4、小知识:判断Redis集群是否可用,只需要判断集群节点中宕机的主节点数有没有超过半数即可。正式因为这个原因,所以才有了第二个注意事项。
5、程序或者客户端软件连接集群时只需连接其中任意一台节点即可。

PS:在服务器充足的情况下,推荐集群最少6个节点:3个主节点(Master),3个从节点(Slave),总共3队。从节点主要是防止主节点意外宕机后保证集群仍可用。否则保存在该节点上的数据就拿不到了。
注意:
从节点和主节点可以放在一台服务器上,但是还是不推荐。
注意:如果主节点挂了后,从节点顶上去。则之前的从节点就变成了主节点,之前的主节点就变成了从节点。及时之前的主节点恢复正常,那么它也继续是从节点。直至当前主节点挂了后,它再顶上去。

三、Redis集群数据存储原理

1、Redis集群会将16384个哈希槽平均分配给每个集群节点。
2、所有存到Redis集群中的数据的key,先把key的hash值经过CR16算法计算之后得到在0-16383区间内的一个固定值。
3、存储数据时,Redis集群会根据得到的0-16383之间的值(即哈希槽的编号),看它在哪个Redis集群节点上,然后将数据存储到该集群节点的Redis上去或者从该集群节点上将数据取出来。

ps:这里面还有一个Redis集群节点的重定向(Redirect)过程。

在这里插入图片描述
这就是鼎鼎大名的Redis集群的原理,小伙伴们,不知道你们理解了没有!

四、安装前准备工作

  1. 安装gcc语言库

    因为Redis是C语言开发的,安装Redis需要C语言的编译环境,如果服务器联网则直接联网安装即可,如果服务器未联网,则先配置本地yum源再安装。

	yum -y install gcc-c++
  1. 安装ruby(我们需要使用ruby脚本来实现集群搭建)
	yum -y install ruby 
	yum -y install yubygems

知识点小贴士:
Ruby是一种简单快捷的面向对象(面向对象程序设计)的脚本语言。在20世纪90年代由小日本人研发,遵守GPL协议和Ruby Listense。
RubyGems建成gems,是一个用语对Ruby组件进行打包的Ruby打包系统。

2.1:yum –y install ruby #安装ruby,我这里服务器没连接互联网,但是我配置本地yum源

在这里插入图片描述

2.2:yum –y install rubygems  #安装rubygems

在这里插入图片描述

PS:可以看到 我是安装失败了,因为我本地的yum源中没有rubygems安装包。所以我采用了手动下载源码包,上传到服务器上然后再安装。但是我看到两个依赖包可以使用本地yum源安装,所以我先安装了两个依赖包。

2.3:yum –y install ruby-irb ruby-rdoc   #先安装了两个依赖包:ruby-irb和ruby-rdoc

在这里插入图片描述

2.4:rpm -ivh rubygems-1.3.7-5.el6.noarch.rpm  #手动下载到rubygems后上传到服务器 再使用rpm命令安装

在这里插入图片描述

PS:注意我这儿的ruby和rubygems的版本,ruby是系统默认的1.8.7,rubygems我下载的是1.3.7。其实我这儿的版本已经很低了,推荐大家在更高版本的服务器上使用时,下载更新的源码包进行安装。目前好像已经有3版本和4版本的了。我这儿是因为服务器不能联网升级比较麻烦,所以就采用了低版本的。大家如果要下载,提供两个地址:
https://rubygems.org/
https://gems.ruby-china.com/

五、集群搭建

PS:这一块是在搭建好Redis单机版的基础上接着进行的。如果还未搭建Redis单机版请搭建Redis单机版(注意:奇数个节点哦)。
Redis单机版搭建详细步骤

搭建步骤:
	1、准备3个节点(如果带有从节点,请准备至少6个节点)。
	2、每个节点都需要开启集群。
	3、使用Ruby脚本将每个开启集群的节点串联到一起,创建集群。

5.1、准备三个节点

	我是因为服务器不足的原因,只准备了三个节点。全部是主节点,没有从节点。IP和端口分别为:56:6379,57:6379,115:6379
	![第一个单节点](https://img-blog.csdnimg.cn/20200722194131574.png)![第二个单节点](https://img-blog.csdnimg.cn/20200722194200382.png)

第三个单节点
如果各位小伙伴的服务器够用,那么可以准备6台服务器,3个主节点,3个从节点。

5.2、 开启各个节点的集群配置

找到各个单节点的配置文件,然后再配置文件中找到cluster-enabled,将它的值改为yes即可。
开启集群节点配置
6.使用ruby脚本搭建集群
进入Redis源码目录的src目录下,执行下面的命令redis-trib.rb。ruby工具可以实现redis集群:
create:创建集群
–replicas:创建主从关系
1:是否随机创建(是)

./redis-trib.rb create --replicas 1 xx.xx.xx.115:6379 xx.xx.xx.56:6379 xx.xx.xx.57:6379

在这里插入图片描述

PS:大家可以看到我这边执行的时候报错了,这里的原因是因为我缺少一个ruby依赖redis.gem。这儿大家可以使用命令gem install -l redis-3.2.0.gem(服务器联网的情况下)安装,这个依赖。也可以使用手动下载依赖,然后上传到服务器,再使用gem install -l redis-3.2.0.gem安装。因为我的服务器不能联网,所以我选择第二种。
重点注意:这时候安装的redis.gem依赖就要与ruby版本相关了。我前面安装的的ruby版本是1.8.7,所以我这里安装的redis.gem依赖的时候版本不能太高。我的Redis安装版本是3.2.8,所以我redis.gem版本是3.2.0。

redis.gem下载包和安装
接下来再执行集群命令:
在这里插入图片描述
发现还是报错,这时候的报错已经变了,是个新的错误。这个网上也有很多解决办法,有的时候和集群有关系。但是我这儿和集群没关系,是因为57:6379这个redis单实例上之前保存过数据了。所以要登录到这个单实例上将其数据库清空即可。

xx.xx.xx.57:6379>  flushdb      #清空当前数据库

再执行集群创建命令:发现成功了。
在集群成功

PS:注意,前面说了,我这里是因为服务器不够,所以只有主节点,没有从节点。所以我在执行命令的时候并没有携带–replicas 1 这两个参数。如果你服务器充足,要携带从节点,那么在执行该命令时携带–replicas 1这两个参数。redis-trib会自动分配主从节点。
重点注意:当redis-trib在创建集群式,询问我们是否按照它的分配来进行集群创建,我们一定要输入:yes。不能直接回车 也不能输入y。一定输入全单词:yes。切记切记。如果直接回车或者输入y,会导致集群创建时哈希槽分配失败,导致集群用不了。

六、完结撒花

到这儿我们的redis集群版就搭建好了。
让我们来./redis-cli命令链接一下。随便链接一个节点即可。
发现可以连接上去,但是不管是set还是get都会报错。
(error) MOVED
在这里插入图片描述
其实这个是因为./redis-cli是单实例客户端链接,而我们你现在是集群,所以也得采用集群方式链接。在./redis-cli后面拼接 -c -p 端口即可。
再用图形化工具连接一下:
在这里插入图片描述

好了 真正的完结撒花!!!!!!!!!写的有点乱,大家见谅!过程中遇到很多坑,也是为自己记录一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值