亲测能成功
一,安装环境,工具,资源
系统:CentOS 7.4 三台(在一台虚拟机上也能安装集群)
192.168.217.128
192.168.217.129
192.168.217.130
工具:Xshell5
redis:redis-3.3.0.gem redis-3.2.6.tar.gz (官网下载)
二,环境配置
1,集群配置
192.168.217.128 | master1 | slave2 |
192.168.217.129 | master2 | slave3 |
192.168.217.130 | master3 | slave1 |
2,相关环境配置
GCC:
检查GCC是否安装:gcc -v
如果没有任何信息,则运行:
yum install gcc-c++ #进行在线安装
Ruby:
检测Ruby是否安装:ruby -v
如果没有任何信息,则运行:
sudo yum install ruby #进行在线安装
OpenSSL:
下载安装包:openssl-1.0.0a.tar.gz
上传到/root
cd /root
tar -zxvf openssl-1.0.0a.tar.gz
cd openssl-1.0.0a
./config -fPIC --prefix=/usr/local/openssl enable-shared
./config -t
make && make install
然后是等待......
如果安装结果报错,则进入 /usr/bin目录,删掉pod2man文件
然后再:
./config -fPIC --prefix=/usr/local/openssl enable-shared
./config -t
make && make install
安装成功!
三,开始安装
1,路径分配
压缩包上传路径:/root/redis-3.2.6.tar.gz
解压路径:/opt/redis-3.2.6
安装路径:/usr/local/bin
2,三台虚拟机分别上传压缩包:redis-3.3.0.gem redis-3.2.6.tar.gz
3,解压安装(192.168.217.128)
cd /root
tar -zxvf redis-3.2.6.tar.gz
mv redis-3.2.6/ /opt/
cd /opt/redis-3.2.6
make && install make (必须用root权限安装)
看到上面的信息就安装成功,默认安装到/usr/local/bin
cd /usr/local/bin/
可以看到已经有上面这些文件
4,重复3的步骤将剩余两台虚拟机进行安装
5,集群文件创建:
每台虚拟机上分别创建两个文件夹,在/opt目录下
192.168.217.128 | 7000 | 7003 |
192.168.217.129 | 7001 | 7004 |
192.168.217.130 | 7002 | 7005 |
如:128机器下:
cd /opt
mkdir 7000 7003 #文件见上述表格,3台机器对应的文件夹名称
拷贝配置文件(3个文件):
cd /usr/local/bin
cp redis-cli redis-server /opt/7000 #拷贝 redis-cli redis-server 两个文件
cp redis-cli redis-server /opt/7003 #拷贝 redis-cli redis-server 两个文件
cd /opt/redis-3.2.6/
cp redis.conf /opt/7000 #拷贝 redis.conf 文件
cp redis.conf /opt/7003 #拷贝 redis.conf 文件
6,重复上面步骤,给其余两台机器拷贝好配置文件
7,redis.conf配置
cd /opt/7000
vi redis.conf
配置7个参数:
port 7000 //端口号,对应文件夹7000名称
pidfile /var/run/redis_7000.pid
appendonly yes //yes启用守护进程
cluster-enabled yes //启用集群
cluster-config-file "nodes-7000.conf" //关联集群配置文件
cluster-node-timeout 5000 //设置超时
bind 0.0.0.0 //指定访问的ip地址,设为0.0.0.0时,所有的ip都可以访问
:wq!保存脚本
cd /opt/7003
配置8个参数:
port 7003 //端口号,对应文件夹7000名称
daemonize yes //启动redis 时,后在后头运行
pidfile /var/run/redis_7003.pid
appendonly yes //yes启用守护进程
cluster-enabled yes //启用集群
cluster-config-file "nodes-7003.conf" //关联集群配置文件
cluster-node-timeout 5000 //设置超时
bind 0.0.0.0 //指定访问的ip地址,设为0.0.0.0时,所有的ip都可以访问
:wq!保存脚本
7,在剩余两台机器上重复上步骤
8,分别启动3台机器的6个redis服务:
在机器:192.168.217.128
cd /opt
./7000/redis-server 7000/redis.conf
./7003/redis-server 7003/redis.conf
netstat -tnulp | grep redis
这个机器的两个redis启动成功
在192.168.217.129,192.168.217.130上面重复上面步骤,记得要改变文件名称
9,集群连接
机器连接前要开发各个集群的端口:
CentOS 7以上开发端口的命令为:
firewall-cmd --zone=public --add-port=端口/tcp --permanent
firewall-cmd --reload
因此:
128机器:
firewall-cmd --zone=public --add-port=7000/tcp --permanent
firewall-cmd --zone=public --add-port=17000/tcp --permanent
firewall-cmd --zone=public --add-port=7003/tcp --permanent
firewall-cmd --zone=public --add-port=17003/tcp --permanent
firewall-cmd --reload
129机器:
firewall-cmd --zone=public --add-port=7001/tcp --permanent
firewall-cmd --zone=public --add-port=17001/tcp --permanent
firewall-cmd --zone=public --add-port=7004/tcp --permanent
firewall-cmd --zone=public --add-port=17004/tcp --permanent
firewall-cmd --reload
129机器:
firewall-cmd --zone=public --add-port=7002/tcp --permanent
firewall-cmd --zone=public --add-port=17002/tcp --permanent
firewall-cmd --zone=public --add-port=7005/tcp --permanent
firewall-cmd --zone=public --add-port=17005/tcp --permanent
firewall-cmd --reload
切换到128机器:
cd /root
gem install redis-3.3.0.gem
cd /opt/redis-3.2.6/src
cp redis-trib.rb /opt
cd /opt
./redis-trib.rb create --replicas 1 192.168.217.128:7000 192.168.217.129:7001 192.168.217.130:7002 192.168.217.128:7003 192.168.217.129:7004 192.168.217.130:7005
可能出现的问题:
如果一直 Waiting for the cluster to join..........................则检查
1,其他的机器的redis服务是否开启
2,其他的机器的端口是否对外开放
如果出现 ERR Slot 0 is already busy (Redis::CommandError)
则进入到每个节点:
启动每个机器的节点,随便进入到一机器
cd /opt/7000
./redis-cli -h 192.168.217.128 -c -p 7000 //进入192.168.218.128机器的7000节点
flushall
cluster reset
6个节点都执行一边,然后
cd /opt
./redis-trib.rb create --replicas 1 192.168.217.128:7000 192.168.217.129:7001 192.168.217.130:7002 192.168.217.128:7003 192.168.217.129:7004 192.168.217.130:7005
节点分析:
192.168.217.128 | 7000(master) | 7003(slave) |
192.168.217.129 | 7001(master) | 7004(slave) |
192.168.217.130 | 7002(master) | 7005(slave) |
3个master,3个slave
四,测试安装
登录一个节点:
如:128机器
cd /opt/7000
./redis-cli -h 192.168.217.128 -c -p 7000
set userName dudang
get userName
然后登录到另一个节点
./redis-cli -h 192.168.217.130 -c -p 7005
get userName
测试成功
至此,redis集群安装成功:
192.168.217.128:7000
192.168.217.129:7001
192.168.217.130:7002
192.168.217.128:7003
192.168.217.129:7004
192.168.217.130:7005
一边安装,一边写这个文档,各种坑,还好都解决了,求个赞啊啊啊啊