本文已参加「新人创造礼」活动,一同敞开掘金创造之路。

1.gcc装置

装置redis需求gcc编译,假如没有gcc,则需求在线装置.指令如下

yum install gcc-c++

假如不能联网需求进行离线装置详细概况参阅 /post/713801…

2.装置redis

2.1上传redis压缩包到服务器

能够经过rz指令进行上传或者运用xftp进行上传,我是上传到了/home/redis目录下redis目录为自己创建,这个方位能够自己随意放置)

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

2.2解压文件夹

tar -xvf redis-3.2.1.tar.gz

2.3进入解压后文件目录

cd redis-3.2.1/

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

make

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

2.5 如下,则编译成功

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

2.6装置编译后的redis代码到指定目录

make install PREFIX=/usr/local/redis

(PREFIX=/usr/local/redis表示装置redis到指定目录)

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

cd /usr/local

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

2.8 至此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文件

vim redis.conf

将daemonize no改为daemonize yes,这样便将发动方法修正为后台发动了

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

然后保存修正并退出

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

ps aux|grep redis

3.集群建立

3.1 在装好的redis目录(/usr/local/redis)下新建一个redis-cluster目录

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

3.2 在redis-cluster目录下建6个文件夹如7000.7001.7002.7003.7004.7005

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

3.3 分别放入/home/redis/redis-3.2.1/redis.conf文件,并修正对应port为7000-7005

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

3.4 然后在/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.5 由于Redis集群的操作是经过Ruby脚本来完结的,因此咱们需求装置Ruby

参阅/post/714044…

装置好以后,咱们到之前解压的文件/home/redis/redis-3.2.1/src目录下找到文件redis-trib.rb,如图所示

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

3.6 将该文件拷贝到与6个文件夹的同级目录下(/usr/local/redis/redis-cluster)

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

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

在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

假如不成功呈现下面问题

问题1

require': cannot load such file -- redis (LoadError) from  /home/cmfchina/ruby/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:inrequire’
from ./redis-trib.rb:25:in `<main>’

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)
这错误是由于短少redis和ruby的接口,咱们需求装置对应的Redis的Rbuy接口包。

咱们能够直接去官网下载rubygems.org/gems/redis/

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)
下载后上传到服务器傍边

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

装置

gem install redis-3.3.0.gem

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

结果又报错,这是由于需求依赖zlib东西,咱们需求再装置zlib才行

下载zlib

http://www.zlib.net

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

下载完结后,上传到服务器(/home/zlib我存放的途径),然后解压文件

tar -xvf zlib-1.2.11.tar.gz

进入解压后的目录

cd zlib-1.2.11/

进行装置

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

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

编译

make

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

然后履行

make install

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

——————至此zlib装置完结———————

装置完zlib之后,在/home/ruby/ruby-2.2.3/ext/zlib/目录下履行

ruby extconf.rb

又报错

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

这个是要将文件装置到本地运行库的里面才行

从头输入指令

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

补白:/usr/local/zlib是我的zlib装置目录

履行

make && make install

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

装置完结后回到redis的gem目录下,

cd /home/redis_gem/

持续履行指令:

gem install redis-3.3.0.gem

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

又呈现了错误,咱们还需求装置OpenSSL

OpenSSL下载地址 www.openssl.org/source/

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

把下载下来的上传到服务器目录/home/openssl,然后解压装置包

tar -xvf openssl-1.0.2r.tar.gz

进入解压后的目录

cd openssl-1.0.2r/

履行

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

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

然后履行

./config -t

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

然后履行

make && make install

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

呈现上述内容阐明装置成功

然后到Ruby解压的源码/home/ruby/ruby-2.2.3目录下的ext/openssl 目录,如图所示

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

 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类似的错误

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

打开Makefile文件,将$(top_srcdir)全部改成../..

sed -i 's/\$(top_srcdir)/\..\/../g' Makefile

修正完以后再履行

make && make install

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

如上图阐明装置成功了,然后咱们再回到之前redis目录下履行指令:

gem install redis-3.3.0.gem

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

———————-到此redis总算装置好了然后建立redis集群—————-

redis5.x版别后装置没有这个杂乱,建议运用redis高版别

3.7发动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

发现又报错了。。。

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

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

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

发现总算成功了

3.8Redis集群测验

咱们来测验一下Redis集群,看是否建立成功,经过连接任一redis端口,增加数据

咱们进入redis的装置目录

cd /usr/local/redis/bin
./redis-cli -h 192.168.56.101 

Linux下的redis安装以及redis集群的搭建(基于3.2.1版本)

咱们从7000上发送的内容跳转到了7001上至此阐明集群建立成功