由于写了一个redis服务,主要作用就是从redis中获取序列号,返回给调用者,在win10中redis的安装很好安装,但是在linux中安装确实很麻烦。
第一次在linux安装redis 和redis集群,从开始安装,遇到的各种问题,到最后安装成功差不多用了8个小时,有点耗时,好在最后搭建成功了。
我会很详细的一步一步的讲解我是怎么搭建的,博文有点长,耐心看完,你会有收获的哦~
我搭建过程中主要参考了如下博客:
单个redis安装
不同主机搭建3主3从的redis集群
同一主机搭建3主6从的redis集群
ruby的安装方案我都没有采用,用的这篇:原文链接
由于我的网不好,选择在win10下载好之后传到测试环境解压后安装!!!
下面来讲一下我的安装过程:
首先是先安装redis,redis安装成功后才是配置集群
注意:请务必先看完本文,再做安装和配置
官网下载地址:https://redis.io/download
我最开始是在官网下载,下载的最新版本:5.0.8
后面又偶然发现历史版本的下载,可以各取所好~~~
历史版本下载地址:http://download.redis.io/releases/
win10下载之后传到在linux的测试环境新建的用户中,在home目录也就是通过cd ~进入的目录新建一个redis目录解压(我在测试环境新建的主机:rdsclsr)
mkdir redis
解压 命令:
tar -zxvf redis-5.0.8.tar.gz
解压之后的目录:
(注:我红色阴影挡住的是我们测试环境的主机名,这个不用在意)
进入到解压的目录:
cd redis-5.0.8
通过 make 命令来对redis解压后文件进行编译
make
(因为redis是由c++编写,所以需要make命令)
编译好的目录:
注:我截图中的installs目录是没有的,是我下面需要安装时需要新建的目录,redis.conf.bak.fanhf.202004091733是我备份的原始的redis.conf文件,因为这个文件后面需要改,所以先备份一下。
编译成功后,就可以进行Redis安装了;
但是看的几乎所有博客都是写的在root用户下的:/usr/local 进行安装
但由于我是新建的用户,怕影响了别的用户的系统运行,所以不用root权限,就在解压后的目录新建一个文件夹:installs
mkdir installs
在解压目录:/home/rdsclsr/redis/redis-5.0.8 先执行测试安装命令:
make test
安装命令是:
make PREFIX=/home/rdsclsr/redis/redis-5.0.8/installs install
(注:PREFIX后面是指定的安装目录,可以根据自己的解压目录来变化)
cd src
ls
cd ../installs/bin
然后查看进程:
ps aux ||grep redis
或者使用:
ps -ef |grep redis
这两个命令的区别参考:原文链接
我一般用 ps -ef |grep redis
这个图片是我找的,因为我现在的测试环境搭建的是redis集群,ps的结果和这个肯定是不一样,所以这个图片的重点是进程信息,忽略用户名和主机名哦~
说明:redis安装成功后,再进行集群的配置,本文里给出的安装redis的博客链接说要在bin的同级目录下创建etc,移动redis.conf到etc下,由于我们是搭建redis集群,所以我没有挪动,就直接放在解压目录下了。
至此,redis的安装就完成了,下面来讲redis集群的配置!!!
由于测试环境只有一台机器可以用,所以我就选择在一台机器上搭建3主6从的集群架构,也就是1主配置2从,一共3主,6从。到了生产环境的话就需要在3台主机,建立3主6从的集群架构了,等搭建后我再更新不同主机搭建redis集群的博客,嘿嘿!!!
在redis目录创建一个文件夹:
cd /home/rdsclsr/redis
mkdir rediscluster
创建之后如下图:
当然也可以给集群目录起别的名字。
进入rediscluster后创建集群的目录,命令如下
cd rediscluster
mkdir 7000 7001 7002 7003 7004 7005 7006 7007 7008
ls
最初的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,可自行百度下载哦~
⑤指定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
⑩修改集群配置文件,将端口号进行修改,开启打开集群超时时间
修改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个配置文件:
我是在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
进入之后将编辑好的脚本粘贴到这个脚本文件里
./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我是参考的这个博文:原文链接
根据这篇博客:不同的主机安装3主3从的博客来看,需要先安装curl,由于测试环境的这台机器有curl,于是我没有安装,我也不确定是否真的需要安装curl,不过有前车之鉴,应该是需要安装无疑的,安装curl的话可以根据这篇博客:https://blog.csdn.net/ixiaoc/article/details/92764552 或者别的博文,不过我依旧会选择先在win10下载后传到linux解压后再安装,下载链接
①下载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
cd /home/rdsclsr/redis/redis-5.0.8
如我参考的同一主机搭建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
中间有个是否同意以上配置,输入yes或no,yes的话就是同意这个配置,no的话需重新执行上面的命令,选择自己想要的配置:
最后确认后:
到这里就算大公告成了,可以查看一下集群状态
cd /home/rdsclsr/redis/redis-5.0.8/installs
./bin/redis-cli -c -p 7000
cluster info
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个小时多,又检查了几遍,最后一看竟然写了13000多字,哎呀妈呀,可累死我了,终于写完了,如果觉得对小伙伴有帮助就得留下足迹,点个赞再走呗~~~[偷笑ing]
与君共勉!!!