Linux下的redis安装以及redis集群的搭建

Linux下的redis安装以及redis集群的搭建

2019年03月28日 21:28:08 a1035082174 阅读数:30

参考链接: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
  • 1

进入解压后的目录

cd zlib-1.2.11/
  • 1

进行安装

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

执行 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安装目录
  • 1

在这里插入图片描述

执行 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述

然后执行

 ./config -t
  • 1

在这里插入图片描述

然后执行

 make && make install
  • 1

在这里插入图片描述

出现上述内容说明安装成功
然后到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 //会生成一个Makefile文件
备注:/usr/local/openssl是我的openssl安装目录

make && make install 

   但是我们make的时候,又出现了和zlib类似的错误
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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

    修改的时候有2种方式

    1.在服务器上修改

    cd /home/ruby/ruby-2.2.3/ext/openssl
    
     进入Makefile文件,

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

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

     2.把该文件拷到本地桌面使用notpad++工具打开,可以一键替换全部,替换完成后再上传把原来的文件替换掉即可。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

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

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

     然后我们再回到之前redis目录下执行命令:gem install redis-3.3.0.gem
  • 1

在这里插入图片描述

(----------------------到此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

        发现又报错了。。。
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

检查了一下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

       发现终于成功了
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

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

             cd   /usr/local/redis/bin

             ./redis-cli -h 192.168.56.101 -c -p 7000    (不加IP会报错)
  • 1
  • 2
  • 3

在这里插入图片描述

我们从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……命令给各节点设置上密码。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值