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.启动集群
我用了三台服务器作为集群安装所需要的硬件:
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的目录下
这里三台服务器都要做以下操作:
修改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)
如上是正常的
这里指定一台服务器去安装就可以了(我这里选择的是129去处理的)
1.解压安装ruby
进入文件夹,然后进行编译和安装
./configure
make && make install
可以进行一个验证
ruby -v
2.解压安装rubygem(unzip 解压)
进入文件夹进行安装
ruby setup.rb
报错:
这是缺少了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的时候会有一个查找路径不对的错误
执行完extconf.rb之后会生成一个Makefile
vim Makefile
MakeFile
添加top_srcdir 换成 ../..
重新
make && make install
3.安装rubygems
首先安装 openssl
解压openssl
进入openssl文件夹:
./config -fPIC --prefix=/usr/local/openssl enable-shared
./config -t
make && make install
安装成功后:
安装好了后编译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
等待成功安装(需要等一会儿)
启动集群之前需要把防火墙端口开启或者关掉防火墙 还有关闭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
找到后修改密码:
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
}
比如我的:
然后重新启动就可以了
如果遇到:直接yes就可以了