成功搭建redis集群(一)和遇到的坑

事件:

由于写了一个redis服务,主要作用就是从redis中获取序列号,返回给调用者,在win10中redis的安装很好安装,但是在linux中安装确实很麻烦。
第一次在linux安装redis 和redis集群,从开始安装,遇到的各种问题,到最后安装成功差不多用了8个小时,有点耗时,好在最后搭建成功了。
我会很详细的一步一步的讲解我是怎么搭建的,博文有点长,耐心看完,你会有收获的哦~
我搭建过程中主要参考了如下博客:

单个redis安装
不同主机搭建3主3从的redis集群
同一主机搭建3主6从的redis集群
ruby的安装方案我都没有采用,用的这篇:原文链接

由于我的网不好,选择在win10下载好之后传到测试环境解压后安装!!!
下面来讲一下我的安装过程:

首先是先安装redis,redis安装成功后才是配置集群

注意:请务必先看完本文,再做安装和配置

一、redis的安装

1、下载redis安装包:

官网下载地址:https://redis.io/download

我最开始是在官网下载,下载的最新版本:5.0.8
在这里插入图片描述
后面又偶然发现历史版本的下载,可以各取所好~~~
历史版本下载地址:http://download.redis.io/releases/

2、解压

win10下载之后传到在linux的测试环境新建的用户中,在home目录也就是通过cd ~进入的目录新建一个redis目录解压(我在测试环境新建的主机:rdsclsr)

mkdir redis

解压 命令:

tar -zxvf 	redis-5.0.8.tar.gz

解压之后的目录:
在这里插入图片描述
(注:我红色阴影挡住的是我们测试环境的主机名,这个不用在意)

3、编译

进入到解压的目录:

cd redis-5.0.8 

通过 make 命令来对redis解压后文件进行编译

make

(因为redis是由c++编写,所以需要make命令)

编译好的目录:
在这里插入图片描述
注:我截图中的installs目录是没有的,是我下面需要安装时需要新建的目录,redis.conf.bak.fanhf.202004091733是我备份的原始的redis.conf文件,因为这个文件后面需要改,所以先备份一下。

别的地方找了编译后的文件的图片:

4、安装

编译成功后,就可以进行Redis安装了;
但是看的几乎所有博客都是写的在root用户下的:/usr/local 进行安装
但由于我是新建的用户,怕影响了别的用户的系统运行,所以不用root权限,就在解压后的目录新建一个文件夹:installs

mkdir installs

在这里插入图片描述

在解压目录:/home/rdsclsr/redis/redis-5.0.8 先执行测试安装命令:

make test

如果出现:
在这里插入图片描述
就说明安装条件是OK的,可以开始正式安装了

安装命令是:

make PREFIX=/home/rdsclsr/redis/redis-5.0.8/installs  install

(注:PREFIX后面是指定的安装目录,可以根据自己的解压目录来变化)

安装命令执行后:
在这里插入图片描述
进入到src目录下,查看里面的内容

cd src
ls

在这里插入图片描述
进入到bin目录:

cd ../installs/bin

在这里插入图片描述
可以看到这些都是一些脚本。

5、启动redis

在这里插入图片描述
然后查看进程:

ps aux ||grep redis

或者使用:

ps -ef |grep redis

这两个命令的区别参考:原文链接
我一般用 ps -ef |grep redis
在这里插入图片描述
这个图片是我找的,因为我现在的测试环境搭建的是redis集群,ps的结果和这个肯定是不一样,所以这个图片的重点是进程信息,忽略用户名和主机名哦~

说明:redis安装成功后,再进行集群的配置,本文里给出的安装redis的博客链接说要在bin的同级目录下创建etc,移动redis.conf到etc下,由于我们是搭建redis集群,所以我没有挪动,就直接放在解压目录下了。

至此,redis的安装就完成了,下面来讲redis集群的配置!!!

二、redis集群的配置

由于测试环境只有一台机器可以用,所以我就选择在一台机器上搭建3主6从的集群架构,也就是1主配置2从,一共3主,6从。到了生产环境的话就需要在3台主机,建立3主6从的集群架构了,等搭建后我再更新不同主机搭建redis集群的博客,嘿嘿!!!

1、创建集群目录

在redis目录创建一个文件夹:

 cd  /home/rdsclsr/redis
 mkdir 	rediscluster

创建之后如下图:
在这里插入图片描述
当然也可以给集群目录起别的名字。
进入rediscluster后创建集群的目录,命令如下

cd rediscluster
mkdir 7000 7001 7002 7003 7004 7005 7006 7007 7008
ls

在这里插入图片描述

2、修改redis.conf文件

最初的redis.conf文件在: /home/rdsclsr/redis/redis-5.0.8

cd /home/rdsclsr/redis/redis-5.0.8

备份原始的配置文件:cp redis.conf redis.conf.bak.fanhf.202004091733

cp  redis.conf   redis.conf.bak.fanhf.202004091733

说明:redis.conf.bak.fanhf.202004091733是我备份的文件名,bak表示备份的标识,fanhf是我的公司昵称,后面是备份的时间具体到年月日时分,便于以后查看。

下面开始修改配置文件

先来说一下都需要修改哪些地方,为了便于观看,我先把配置文件传到win10上,再用notepad++来修改,修改之后传到linux系统上,从win10到linux传文件我用的时FileZila,可自行百度下载哦~

①注销绑定的端口号
在这里插入图片描述
(注:这里不用修改,默认是注销的)

②关闭保护模式
在这里插入图片描述
修改:将yes改为:no

③修改端口号
在这里插入图片描述
修改:将端口号6379改成:7000

④后台运行开启
在这里插入图片描述
修改:将no改为:yes

⑤指定pid文件存放的位置
在这里插入图片描述
修改:将/var/run/redis_6379.pid改为:/home/rdsclsr/redis/rediscluster/7000/redis_7000.pid

⑥修改日志存放路径即logfile的路径
在这里插入图片描述
修改:将"“改为:”/home/rdsclsr/redis/rediscluster/7000/redis.log"

⑦修改dump日志文件路径
在这里插入图片描述
修改:将dump.rdb改为:dump.7000.rdb

⑧启用二进制日志
在这里插入图片描述
修改:将no改为:yes

⑨启用集群
在这里插入图片描述
修改:去掉前面的#,即取消注释

⑩修改集群配置文件,将端口号进行修改,开启打开集群超时时间
在这里插入图片描述
修改1:去掉前面的#,将 nodes-6379.conf改为: nodes-7000.conf
修改2:去掉cluster-node-timeout 15000前面的#

至此,redis.conf配置文件修改完成

这个配置文件是端口为7000的配置文件,将此配置文件在win10系统上更改文件名为:redis-7000.conf,再传到linux测试机上的对应的目录:/home/rdsclsr/redis/redis-5.0.8/rediscluster/7000/

接下来就是在win10中修改redis-7000.conf文件名或者复制一份后改文件名为:redis-7001.conf…等.,再批量替换为对应的端口,也就是将配置文件里的7000替换为:7001…等,替换直接就是:ctrl+H
在这里插入图片描述
我是选择替换一个传一个,最后将8个替换完之后在测试机上如下图:
一共9个配置文件:
在这里插入图片描述

3、创建redis集群启动脚本:

我是在notepat++先编辑好,内容为:

#!/bin/sh
./redis-server ~/redis/rediscluster/7000/redis-7000.conf
./redis-server ~/redis/rediscluster/7001/redis-7001.conf
./redis-server ~/redis/rediscluster/7002/redis-7002.conf
./redis-server ~/redis/rediscluster/7003/redis-7003.conf
./redis-server ~/redis/rediscluster/7004/redis-7004.conf
./redis-server ~/redis/rediscluster/7005/redis-7005.conf
./redis-server ~/redis/rediscluster/7006/redis-7006.conf
./redis-server ~/redis/rediscluster/7007/redis-7007.conf
./redis-server ~/redis/rediscluster/7008/redis-7008.conf

在测试环境的linux的目录下:/home/rdsclsr/redis/redis-5.0.8/installs/bin 创建启动集群的脚本:redis-startAll.sh

cd /home/rdsclsr/redis/redis-5.0.8/installs/bin
vim redis-startAll.sh

进入之后将编辑好的脚本粘贴到这个脚本文件里

4、启动redis集群

./redis-startAll.sh

如果执行不了,报权限不足就要设置可执行权限:

chmod 755 redis-startAll.sh

查看redis集群是否启动:

ps -ef|grep  redis  

在这里插入图片描述
至此,redis的集群的配置就完成了,下面来讲ruby的安装!!!

[花][花]感谢坚持看到这里的同仁,写的比较详细,我也有点累了哈哈哈===

完成3/5啦,坚持就是胜利!!!

可能小伙伴也会疑问,不是有启动集群的脚本,为啥还要安装ruby呢,刚开始我也郁闷,但是在我最前面提到的不同主机安装3主3从的博客里看到:创建集群的主控制端,在真实的生产环境,我们一般都是采用不同的主机来安装配置redis集群,而不是在一台主机上,这样要是一台主机宕机了,redis集群也就over了,而且有主控会便于redis集群的管理。

安装ruby我是参考的这个博文:原文链接

三、ruby的安装

1、安装curl

根据这篇博客:不同的主机安装3主3从的博客来看,需要先安装curl,由于测试环境的这台机器有curl,于是我没有安装,我也不确定是否真的需要安装curl,不过有前车之鉴,应该是需要安装无疑的,安装curl的话可以根据这篇博客:https://blog.csdn.net/ixiaoc/article/details/92764552 或者别的博文,不过我依旧会选择先在win10下载后传到linux解压后再安装,下载链接

安装后可以查看到版本就OK~
在这里插入图片描述

2、安装ruby

①下载ruby安装包:下载链接
②传到测试环境的linux后解压

我在redis的同级目录新建了ruby的目录
在这里插入图片描述
进入ruby目录后,解压ruby-2.7.1.tar.gz

cd ruby
tar -zxvf  ruby-2.7.1.tar.gz

解压之后如下图:
在这里插入图片描述
③创建安装目录

进入解压后的目录,

cd ruby-2.7.1/

在这个目录下创建installs目录后进入installs目录

mkdir installs
cd  installs

④编辑配置并编译源代码进行安装
我的安装目录是在刚才创建的installs目录下:/home/rdsclsr/ruby/ruby-2.7.1/installs,进入后执行编译命令:./configure --prefix=/home/rdsclsr/ruby/ruby-2.7.1/installs

cd  /home/rdsclsr/ruby/ruby-2.7.1/installs

./configure --prefix=/home/rdsclsr/ruby/ruby-2.7.1/installs

(prefix是将ruby安装到指定目录,我这里是自定义的目录)

执行后页面如下图:
在这里插入图片描述
这个图是从我参考的博客中找到,当时编译的时候我没有截图[捂脸]参考博文

⑤安装ruby,执行命令

cd  /home/rdsclsr/ruby/ruby-2.7.1/installs

make && make install

在这里插入图片描述
这个图是从我参考的博客中找到,当时安装的时候我没有截图[捂脸]

安装后,查看ruby的版本

ruby -v

在这里插入图片描述

注:如果想安装在/usr/local/ruby下,需要root权限,或者直接在root下安装。

⑤给ruby配置环境变量
我是选择在/etc/profile里配置的,需要登录到root用户后,给/etc/profile赋予755的权限后,退出root用户,回到rdsclsr用户后,才能修改文件,在修改的profile的时候我也遇到了不能修改的错误,参考我昨天写的:原文链接

vim /etc/profile

在最后添加:

#ruby
export PATH=/home/rdsclsr/ruby/ruby-2.7.1/installs/bin:$PATH

修改后执行:

source /etc/profile

然后看看path里面有没有ruby的配置

echo $PATH  	

在这里插入图片描述
至此,Ruby安装完成!

四、配置3主6从结构

1、进入redis的安装目录

cd  /home/rdsclsr/redis/redis-5.0.8

2、执行配置命令

如我参考的同一主机搭建3主6从的博客所言,执行配置命令:

./src/redis-trib.rb create --replicas 2 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 127.0.0.1:7007 127.0.0.1:7008

其中的2表示一个主机下挂载几个从节点, 本集群配置的是一主2从,3台主机6台从机共9台redis服务器。

执行后,我这里显示信息如下:
在这里插入图片描述
执行不成功,于是我很听话的执行了:

redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 127.0.0.1:7007 127.0.0.1:7008 --cluster-replicas 2

执行后如下图:
在这里插入图片描述

3、同意主从配置

中间有个是否同意以上配置,输入yes或no,yes的话就是同意这个配置,no的话需重新执行上面的命令,选择自己想要的配置:
在这里插入图片描述
最后确认后:
在这里插入图片描述

4、查看集群状态

到这里就算大公告成了,可以查看一下集群状态

cd /home/rdsclsr/redis/redis-5.0.8/installs
./bin/redis-cli -c -p 7000
cluster info

在这里插入图片描述
或者check一下;

cd /home/rdsclsr/redis/redis-5.0.8/installs/bin
./redis-cli --cluster check 127.0.0.1:7001

在这里插入图片描述

也可以进行宕机测试(kill 某一个节点的进程),看看节点是否会变化,我这里就不赘诉啦,感兴趣的可以去尝试一下哦~

至此,集合ruby配置的redis集群搭建彻底大功告成!

补充:我在执行ruby配置主从的时候报了一个错:

在这里插入图片描述
解决办法是:修改配置文件:cluster-enabled的值改为: yes,由于我在配置的时候自己给漏掉了,所以导致的这个错误,当然在本文已经进行了纠正,参考:原文链接

写在最后面的话:

写了4个小时多,又检查了几遍,最后一看竟然写了13100多字,哎呀妈呀,可累死我了,终于写完了,如果觉得对小伙伴有帮助就得留下足迹,点个赞再走呗~~~[偷笑ing]

欢迎留言沟通交流,与君共勉!!!

发布了81 篇原创文章 · 获赞 10 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/fhf2424045058/article/details/105430060