redis(4.0.2)集群离线部署

redis集群离线部署,进行记录以免忘记

参考文档:

1.https://www.cnblogs.com/hello-daocaoren/p/8431902.html

2.https://blog.csdn.net/xiaobo060/article/details/80616718#commentBox

3.https://blog.csdn.net/u010520146/article/details/84932104

目录

1.上传解压以及生成redis_cluster文件夹

2.修改redis.conf文件并且按照节点顺序启动redis

3.安装集群依赖

4.启动集群


1.上传解压以及生成redis_cluster文件夹

我用了三台服务器作为集群安装所需要的硬件:

ip分别为:

192.168.137.129 

192.168.137.130

192.168.137.131

端口分别为:

7000

7001

包下载路径:https://download.csdn.net/download/qq_28198181/11233672

这里三台服务器都要做以下操作:

1.解压redis压缩包,成文件夹格式

tar -zxvf .........tar.gz

2.进入文件夹后进行make命令

make

注意:这一步需要gcc环境:可以参考:https://blog.csdn.net/qq_28198181/article/details/82978830 

否则会报错

3.安装完毕界面如下:

然后在redis里面创建redis_cluster文件夹(我的截图redis版本请忽略..........),然后在里面创建redis+端口号的文件夹:

两个文件夹都需要放入redis.conf

redis.conf这个在redis的目录下

 

2.修改redis.conf文件并且按照节点顺序启动redis

这里三台服务器都要做以下操作:

修改redis7000文件夹的redis.conf文件:

port 7000    //配置集群的端口,分别是7000、7001、7002
bind 本机的IP    //这里的默认配置是127.0.0.1改为内网ip。
daemonsize yes   //允许redis在后台运行
pidfile  /var/run/redis_7000.pid  //改成和端口一致
cluster-enabled  yes   // 开启集群 把注释去掉
cluster-config-file node_7000.conf  //集群的配置,和端口一致
cluster-node-timeout  15000  // 请求超时,默认为15秒
appendonly  yes // aof日志开启,有需要就开启,每一次写操作都会记录一条日志。
protected-mode no // protected-mode参数是为了禁止外网访问redis,如果启用了,则只能够通过lookback ip(127.0.0.1)访问Redis,如果外网访问redis,会报出异常

//如果需要设置密码 还要添加如下且密码得一致:
requirepass 密码
masterauth 密码

然后修改7001文件夹的redis.conf文件:(和上面差不多就是把端口以及端口一致的参数改了,注意每台服务器ip不一致哈

port 7001    //配置集群的端口,分别是7000、7001、7002
bind 本机的IP    //这里的默认配置是127.0.0.1改为内网ip。
daemonsize yes   //允许redis在后台运行
pidfile  /var/run/redis_7001.pid  //改成和端口一致
cluster-enabled  yes   // 开启集群 把注释去掉
cluster-config-file node_7001.conf  //集群的配置,和端口一致
cluster-node-timeout  15000  // 请求超时,默认为15秒
appendonly  yes // aof日志开启,有需要就开启,每一次写操作都会记录一条日志。
protected-mode no // protected-mode参数是为了禁止外网访问redis,如果启用了,则只能够通过lookback ip(127.0.0.1)访问Redis,如果外网访问redis,会报出异常

//如果需要设置密码 还要添加如下且密码得一致:
requirepass 密码
masterauth 密码

(也可以参考我上传的文档里面的redis.conf参数)

然后启动三台服务器的六个节点

进入src里面

使用命令:

 ./redis-server  ../redis_cluster/redis7000/redis.conf

 ./redis-server  ../redis_cluster/redis7001/redis.conf

启动后会有这样的显示:

这个时候再查看redis服务:

ps -aux | grep -a 'redis'

可以看到如下:

表明是启动成功了

这里还有个坑:注意可能显示启动成功了但是用ps命令没有显示两个端口都启动了 这个时候得检查下你的conf文件是否有问题,没有的话加上绝对路径去启动 比如上图

如果三台服务器六个节点都启动成功了,就可以开始安装集群了

这里可以测试一波:(我的密码是jy897513)

如上是正常的

3.安装集群依赖

这里指定一台服务器去安装就可以了(我这里选择的是129去处理的)

1.解压安装ruby

进入文件夹,然后进行编译和安装

./configure
make && make install

可以进行一个验证

ruby -v

2.解压安装rubygem(unzip 解压)

进入文件夹进行安装

ruby setup.rb

报错:

redis(4.0.2)集群离线部署_第1张图片

这是缺少了zlib,咱这个时候就得把zlib安装上

./configure --prefix=/usr/local/zlib
make
make install

编译 ruby 中的zlib

进入 src的ruby文件的ext/zlib

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

make的时候会有一个查找路径不对的错误

redis(4.0.2)集群离线部署_第2张图片

执行完extconf.rb之后会生成一个Makefile

vim Makefile

MakeFile

添加top_srcdir 换成 ../..

redis(4.0.2)集群离线部署_第3张图片

 

重新

make && make install

3.安装rubygems

首先安装 openssl

解压openssl

进入openssl文件夹:

./config -fPIC --prefix=/usr/local/openssl enable-shared
./config -t
make && make install

安装成功后:

redis(4.0.2)集群离线部署_第4张图片

安装好了后编译ruby的openssl(类似于编译zlib)

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

如果报错

Makefile添加:

top_srcdir = ../..

然后重新

make && make install

安装成功后就开始安装rubygem

使用命令:

gem install redis-3.2.2.gem

等待成功安装(需要等一会儿)

4.启动集群

启动集群之前需要把防火墙端口开启或者关掉防火墙 还有关闭selinux

service iptabels stop
systemctl stop firewalld
setenforce 0

然后进入redis的src

使用命令:

./redis-trib.rb create --replicas 1 ip1:port1 ip1:port2 ip2:port1 ip2:port2  ip3:port1 ip3:port2

如果redis单机设置了密码切集群启动时:

报错can't connect ,先找一下client.rb

find / -name client.rb

一般是:redis下的client.rb

redis(4.0.2)集群离线部署_第5张图片

找到后修改密码:



    DEFAULTS = {
      :url => lambda { ENV["REDIS_URL"] },
      :scheme => "redis",
      :host => "127.0.0.1",
      :port => 6379,
      :path => nil,
      :timeout => 5.0,
      :password => "xxxxxx",
      :db => 0,
      :driver => nil,
      :id => nil,
      :tcp_keepalive => 0,
      :reconnect_attempts => 1,
      :inherit_socket => false
    }

比如我的:

redis(4.0.2)集群离线部署_第6张图片

然后重新启动就可以了

如果遇到:直接yes就可以了

你可能感兴趣的:(redis)