Linux下的redis安装以及redis集群的搭建_基于Redis3.2.1版本

参考链接:https://blog.csdn.net/qq_42815754/article/details/82832335

参考链接:https://www.cnblogs.com/xuliangxing/p/7146868.html (搭建的时候遇到的坑在这篇中基本都能找到)

1.环境配置
Redis是c开发的,因此安装redis需要c语言的编译环境,即需要安装gcc
如何查看是否安装gcc

gcc -v

在这里插入图片描述
如果没有gcc,则需要在线安装.命令如下

yum install gcc-c++

如果不能联网需要进行离线安装具体详情参考

https://blog.csdn.net/a1035082174/article/details/88862806

2.安装redis
2.1上传redis压缩包到服务器
可以通过rz命令进行上传或者使用xftp进行上传 (我是上传到了/home/redis目录下 redis目录为自己创建,这个位置可以自己随意放置)
在这里插入图片描述
2.2 执行命令解压文件夹

tar -xvf  redis-3.2.1.tar.gz

2.3 解压完成后进入解压后文件目录

cd redis-3.2.1/

2.4 查看是否存在Makefile文件,存在则直接make编译redis源码(如果没有装gcc的话这步不会执行成功)

make

2.5 如下,则编译成功
在这里插入图片描述
2.6 安装编译后的redis代码到指定目录,一般存放于/usr/local下的redis目录,指令如下

make install PREFIX=/usr/local/redis

注意:PREFIX=/usr/local/redis表示安装redis到指定目录
在这里插入图片描述

2.7查看/usr/local目录,可以发现多了一个redis目录

cd /usr/local

2.8 至此,redis安装成功,可以启动redis了,默认启动模式为前端启动,指令如下

./redis-server

2.9 前端启动的话,如果客户端关闭,redis服务也会停掉,所以需要改成后台启动redis.
具体做法分为两步 -> 第一步:将redis解压文件里面的redis.conf文件(home/redis/redis-3.2.1/redis.conf)复制到当前目录(/usr/local/redis/bin),指令如下

cp /home/redis/redis-3.2.1/redis.conf .

第二步:修改redis.conf文件,将daemonize no改为daemonize yes,这样便将启动方式修改为后台启动了

vim redis.conf

然后保存修改并退出,指令如下(四步操作)
Esc -> : -> wq -> Enter(回车)
注:如果要配置redis集群的时候需要把下面的也进行配置,这个可以在后续步骤里面在弄)

2.10 启动redis -> 后台启动 (在/usr/local/redis/bin目录下)

./redis-server redis.conf

2.11 查看redis是否在运行,指令如下

ps aux|grep redis

2.12 打开redis连接

./redis-cli

3.集群搭建

3.1 在装好的redis目录(/usr/local/redis)下新建一个redis-cluster目录
在这里插入图片描述
3.2 在redis-cluster目录下建6个文件夹如7000.7001.7002.7003.7004.7005
在这里插入图片描述
3.3 分别放入/home/redis/redis-3.2.1/redis.conf文件,并修改对应port为7000-7005

daemonize yes    //redis后台运行 
bind 0.0.0.0   //改成你对应的IP
pidfile /var/run/redis_7000.pid    //pidfile文件对应7000 
port 7000   //端口7000 
cluster-enabled yes    //开启集群 把注释#去掉 
cluster-config-file nodes.conf    //集群的配置 配置文件首次启动自动生成 
cluster-node-timeout 5000   //请求超时 设置5秒够了 
appendonly yes   //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
protected-mode no   //在redis3.2之后,redis增加了protected-mode,在这个模式下,即使注释掉了bind 127.0.0.1,再访问redisd时候还是报错

3.4 然后给读写权限

chmod 777 redis.conf 

3.5 然后在/usr/local/redis目录下执行

./bin/redis-server redis-cluster/7000/redis.conf
./bin/redis-server redis-cluster/7001/redis.conf
./bin/redis-server redis-cluster/7002/redis.conf
./bin/redis-server redis-cluster/7003/redis.conf
./bin/redis-server redis-cluster/7004/redis.conf
./bin/redis-server redis-cluster/7005/redis.conf

3.6 使用

netstat -tnulp | grep redis和ps aux| grep redis

查看状态

在这里插入图片描述
3.7 由于Redis集群的操作是通过Ruby脚本来完成的,因此我们需要安装Ruby,以及Redis和Ruby的接口包。所以我们要安装ruby,参考https://blog.csdn.net/a1035082174/article/details/88870024
安装好以后,我们到之前解压的文件/home/redis/redis-3.2.1/src目录下找到文件为:redis-trib.rb,如图所示
在这里插入图片描述
3.8 将该文件拷贝到与6个文件夹的同级目录下(/usr/local/redis/redis-cluster)

cp /home/redis/redis-3.2.1/src/redis-trib.rb  /usr/local/redis/redis-cluster

在这里插入图片描述
在redis目录下(usr/local/redis)执行命令:

./redis-trib.rb create --replicas 1 192.168.56.101:7000 192.168.56.101:7001 192.168.56.101:7002 192.168.56.101:7003 192.168.56.101:7004 192.168.56.101:7005

如果成功万事大吉,如果不成功出现下面问题
3.8.1.问题1
在这里插入图片描述
这错误是提示不能加载redis,那是因为缺少redis和ruby的接口,使用gem 安装,我们需要安装对应的Redis的Rbuy接口包。我们需要下载对应Redis的gem包安装才行。Rubygems的官网其实提供了Redis的gem包,我们可以直接去https://rubygems.org/gems/redis/ 下载后上传到服务器当中

在这里插入图片描述
执行gem install redis-3.3.0.gem命令安装
在这里插入图片描述
结果又报错,这是因为需要依赖zlib工具
3.8.2我们需要再安装zlib才行,下载zlib,上传解压,安装zlib官方网站:http://www.zlib.net ,最新版1.2.11
在这里插入图片描述

在这里插入图片描述

下载完成后,上传到服务器(/home/zlib我存放的路径)

然后解压文件

tar  -xvf zlib-1.2.11.tar.gz

进入解压后的目录

cd zlib-1.2.11/

进行安装

./configure --prefix=/usr/local/zlib  //设置安装路径

编译

make

然后执行

make install

(------------------至此zlib安装完成---------------------)
3.8.3安装完zlib之后,我们再需要执行以下命令

cd /home/ruby/ruby-2.2.3/ext/zlib/ 

注意:/home/ruby/ruby-2.2.3这个目录是ruby安装包后解压的目录,就是前面ruby离线安装的解压目录

然后执行ruby extconf.rb 又报错
在这里插入图片描述

这个是要将文件安装到本地运行库的里面才行,所有安装的时候需要额外配置信息,但是前提是我们需要安装zlib,才能继续下一步。
安装好zlib,然后我们重新输入命令

cd /home/ruby/ruby-2.2.3/ext/zlib/

ruby extconf.rb  --with-zlib-include=/usr/local/zlib/include/ --with-zlib-lib=/usr/local/zlib/lib       (//会生成一个Makefile文件)

注意:/usr/local/zlib是我的zlib安装目录

在这里插入图片描述

执行

make && make install

在这里插入图片描述

我的执行make && make install到这块的时候已经成功了,还有其他的报错参考 https://www.cnblogs.com/xuliangxing/p/7146868.html
3.8.4回到redis的gem目录下,

cd /home/redis_gem/

继续执行命令:

gem install redis-3.3.0.gem

在这里插入图片描述

又出现了错误,原来我们还需要安装OpenSSL,因为Redis集群交互是需要OpenSSL
3.8.5我们得安装OpenSSL才行,官网地址:https://www.openssl.org/source/

在这里插入图片描述

把下载下来的上传到服务器目录(这个由自己定)/home/openssl
解压安装包

tar -xvf openssl-1.0.2r.tar.gz

进入解压后的目录

cd openssl-1.0.2r/

执行

./config -fPIC --prefix=/usr/local/openssl enable-shared

在这里插入图片描述

然后执行

./config -t

在这里插入图片描述

然后执行

make && make install

在这里插入图片描述

出现上述内容说明安装成功
然后到Ruby解压的源码[/home/ruby/ruby-2.2.3]目录下的ext/openssl 目录,如图所示
在这里插入图片描述

安装和zlib一样的方式安装openssl

cd  /home/ruby/ruby-2.2.3/ext/openssl

注意: /home/ruby/ruby-2.2.3这个目录是ruby安装包后解压的目录,就是前面提到的ruby离线安装

ruby extconf.rb  --with-openssl-include=/usr/local/openssl/include/ --with-openssl-lib=/usr/local/openssl/lib 

注意:/usr/local/openssl是我的openssl安装目录

make && make install 

但是我们make的时候,又出现了和zlib类似的错误

在这里插入图片描述
打开Makefile文件,将$(top_srcdir)全部改成…/…

修改的时候有2种方式

1.在服务器上修改

cd /home/ruby/ruby-2.2.3/ext/openssl

进入Makefile文件,

vim  Makefile

然后输入 /$(top_srcdir) 即可依次找到对应的分别替换

替换完成后点击 esc->:wq->回车

     2.把该文件拷到本地桌面使用notpad++工具打开,可以一键替换全部,替换完成后再上传把原来的文件替换掉即可。

在这里插入图片描述

修改完以后再执行make && make install

在这里插入图片描述
如上图说明安装成功了

然后我们再回到之前redis目录下执行命令:

gem install redis-3.3.0.gem

在这里插入图片描述

(----------------------到此redis终于安装好了然后搭建redis集群----------------)
3.9 启动Redis集群

完成以上步骤之后,在redis目录下(/usr/local/redis/redis-cluster)执行命令:

./redis-trib.rb create --replicas 1 192.168.56.101:7000 192.168.56.101:7001 192.168.56.101:7002 192.168.56.101:7003 192.168.56.101:7004 192.168.56.101:7005

发现又报错了。。。
在这里插入图片描述

检查了一下redis.conf发现IP没有修改,把bind 127.0.0.1 这个IP改成你的虚拟机IP

然后把cluster-enabled yes //开启集群 把注释#去掉然后把之前的进程杀掉 重新启动

然后执行

./redis-trib.rb create --replicas 1 192.168.56.101:7000 192.168.56.101:7001 192.168.56.101:7002 192.168.56.101:7003 192.168.56.101:7004 192.168.56.101:7005
       发现终于成功了

在这里插入图片描述

4.Redis集群测试
我们来测试一下Redis集群,看是否搭建成功,通过连接任一redis端口,添加数据
我们进入redis的安装目录

cd   /usr/local/redis/bin
./redis-cli -h 192.168.56.101 -c -p 7000

在这里插入图片描述

我们从7000上发送的内容跳转到了7001上至此说明集群搭建成功,set name的时候计算了存在哪个hash槽上,会跳转到那个槽对应的节点

出现的问题:
如果在redis.conf里面requirepass设置了密码在建集群的时候就会报错
Sorry, can’t connect to node 127.0.0.1:7000
因此在建集群的时候不要设置密码在建完以后在设置密码。方法如下:

./redis-cli -c -p 7000 

config set masterauth passwd123 
config set requirepass passwd123 
auth "passwd123 "  
config rewrite 

./redis-cli -c -p 7001,./redis-cli -c -p 7002……命令给各节点设置上密码。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值