安装redis需要gcc环境,ruby环境

yum install gcc-c++

yum install ruby

yum install rubygems

创建集群需要用到以下名令

gem install redis

注意:这里执行gem需要ruby版本2.2以上(手动安装ruby会有各种各样的问题详情请看结尾)

安装redis

下载redis

解压redis

tar -zxvf redis

cd redis

编译

./configure

make

cd src

make install

若看到以下信息,说明安装成功

安装Redis 3 安装redis集群_服务器

如果只是想要单机,不存在集群功能,我们现在就可以将Redis运行起来,我们直接在刚刚解压的Redis目录下运行命令就可以将单机的Redis 运行起来
cd /usr/local/redis-3.2.9
redis-server redis.conf
验证是否安装且远程是否可以连接:
参考:

最后用RedisDesktopManager工具远程连接上之后,如下图所示,即redis安装部署完成

安装Redis 3 安装redis集群_安装Redis 3_02


安装Redis 3 安装redis集群_ruby_03

集群配置:
集群可以单台服务器以及多台,这里我们使用两台服务器
172.16.201.89 redsi1
172.16.201.90 redis2
这里先在/usr/local下创建文件夹cluster
mkdir cluster
在cluret下创建文件夹用来存放节点的文件(redis要求最少需要6个节点,这里配置的是两台服务器,每台服务器3台节点)
mkdir 7000
mkdir 7001
mkdir 7002
先将redis文件夹下的redis.conf文件复制到cluret目录下
cp redis.conf /usr/local/cluster
修改配置文件
cd /usr/local/cluster
vim redis.conf
修改以下选项:
bind填写指定访问ip,最好填写真实ip地址,或者填写0.0.0.0(0.0.0.0默认是全部IP地址可访问,不设置,多台之间无法进行连接)
ifconfig -a 查看真实服务器地址

安装Redis 3 安装redis集群_安装Redis 3_04


将bind绑定

安装Redis 3 安装redis集群_集群_05


修改端口号,每个节点端口号不同

安装Redis 3 安装redis集群_ruby_06

进程文件存放地址

安装Redis 3 安装redis集群_集群_07


指定数据文件存放位置

安装Redis 3 安装redis集群_redis_08


appendonly yes表示开启守护进程

修改文件存放路径

安装Redis 3 安装redis集群_服务器_09

cluster-enabled yes表示启动集群
cluster-config-file 关联集群配置文件
cluster -node-timeout 设置超时时间

安装Redis 3 安装redis集群_服务器_10


日志文件存放路径,可有可无这里我没配置

安装Redis 3 安装redis集群_ruby_11


将修改后的文件先后复制到节点文件夹内

cp redis.conf /usr/local/cluster/7000

cp redis.conf /usr/local/cluster/7001

cp redis.conf /usr/local/cluster/7002

根据节点修改ip以及端口后和文件存放路径

服务器redis2同样,这里我的端口号分别为7003,7004,7005

接下来将节点启动

进入redis目录下的src目录

cd /usr/local/redis/src

启动节点的命令为redis-server

安装Redis 3 安装redis集群_redis_12


执行命令:

./redis-server /usr/local/cluster/7000/redis.conf

./redis-server /usr/local/cluster/7001/redis.conf

./redis-server /usr/local/cluster/7002/redis.conf

./redis-server /usr/local/cluster/7003/redis.conf

./redis-server /usr/local/cluster/7004/redis.conf

./redis-server /usr/local/cluster/7005/redis.conf

./redis-server /usr/local/cluster/7006/redis.conf

也可以创建shell脚本进行批量执行

vim startall.sh

将下面命令写入:

cd /usr/local/redis/src ./redis-server /usr/local/cluster/700X/redis.conf

然后给文件加上权限,执行

chmod 777 startall.sh

./startall

执行netstat -tnulp | grep redis和ps aux | grep redis查看节点是否启动

安装Redis 3 安装redis集群_服务器_13

同时节点文件夹会生成相应的文件

安装Redis 3 安装redis集群_服务器_14

接下来将redis1和redis2服务器上的节点做成集群
在两台机器的redis的src目录下执行(可使用xshell自带功能


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

安装Redis 3 安装redis集群_安装Redis 3_15

我们选择yes,意思是服从这种主从分配方式,我们也可以通过配置文件自己指定slave

安装Redis 3 安装redis集群_ruby_16

这里集群就配置完成。
集群测试:
通过连接任一redis端口,添加数据,在redis的src下执行
redis-cli -p 7001 -c
redis-cli -c -h 127.0.0.1 -p 7001 shutdown //关闭集群,如果没有-h参数,默认连接127.0.0.1,如果没有-p参数,默认连接6370端口(所有如果用默认的,就没有-h -p)
说明:-h+host –p+端口号 –c 是要连接集群,注意坑,不加会报错的

安装Redis 3 安装redis集群_redis_17

可以看到连接的是7001的节点,set name的时候计算了存在哪个hash槽上,会跳转到那个槽对应的节点

问题汇总:

在执行创建集群命令时./redis-trib.rb create --replicas 1 192.168.111.98:7000 192.168.111.98:7001 192.168.111.98:7002 192.168.111.99:7003 192.168.111.99:7004 192.168.111.99:7005

遇到gem报错时,说明需要使用命令gem install redis

安装不成功会提示版本要求不符合的命令,这里我们删除yum安装的低版本ruby进行手动安装

现在版本符合要求的包进行解压

curl -O -L https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.7.tar.gz

tar -zxvf ruby-2.2.7

./configure –-prefix=/usr/local/ruby (这里路径指定,可自行创建)

make

make install

配置软连接

ln -s /usr/local//ruby /usr/bin/ruby

再次执行gem命令

有时会提示:

安装Redis 3 安装redis集群_ruby_18

这里先使用yum安装zlib,进入ruby下

cd /home/ruby/ext/zlib

ruby extconf.rb

make && make install

接下来可能报错,需要修改Makefile文件

安装Redis 3 安装redis集群_集群_19

将文件内$(top_srcdir)/include/ruby.h修改为…/…/include/ruby.h
再次执行make&make install
继续执行命令:gem install redis
又出现了错误,原来我们还需要安装OpenSSL,因为Redis集群交互是需要OpenSSL

安装Redis 3 安装redis集群_redis_20


同样,yum下载openssl

进入ruby文件下

cd /usr/local/ruby/ext/openssl

ruby extconf.rb

make && make install

make 之前同样将生成的Makefile文件中的$(top_srcdir)/include/ruby.h修改为…/…/include/ruby.h

继续执行命令:gem install redis

成功