一、架构:
三主三从
二、环境和版本:
Linux环境:CentOS 7.6
Redis版本:redis 4.0.10
二、搭建步骤:
1、搭建Redis集群
(1)安装redis(在三台服务器上分别安装)
把相关安装包复制到/root/bak目录下
查看是否安装了gcc编译环境(Redis是C语言开发,编译依赖gcc环境)
# gcc -v
编译、安装
# make
# make install
(2)创建redis集群目录(在三台服务器上分别创建)
# cd /opt/redis-4.0.10
# mkdir redis-cluster
# cd redis-cluster
# mkdir 6381
# mkdir 6382
将redis安装目录/opt/redis-4.0.10下的redis.conf文件拷贝至6381文件夹,并修改以下配置:
daemonize yes #开启后台运行
port 6381 #工作端口
bind 172.18.183.7 #绑定机器的内网IP,一定要设置呀老铁,不要用127.0.0.1,如果需要远程访问使用0.0.0.0
dir /opt/redis-4.0.10/redis-cluster/6381/ #指定工作目录,dump,rdb快照文件将会放在该目录下,不同实例一定要配置不同的工作目录
cluster-enabled yes #启用集群模式
cluster-config-file nodes-6381.conf #生成的集群配置文件名称,集群搭建成功后会自动生成,在工作目录下
cluster-node-timeout 5000 #节点宕机发现时间,可以理解为主节点宕机后从节点升级为主节点时间
pidfile /var/run/redis_6381.pid #pid file所在目录
logfile /var/log/redis_6381.log #配置日志文件路径
把6381文件夹下的6381.conf文件拷贝到6382目录,并重新修改port 、bind、dir、cluster-config-file、pidfile、logfile 六个属性。
把6381、6382里的配置文件拷贝到其它两台机器对应的6381、6382目录里,并修改port、bind两个属性。
由于创建集群需要用到redis-trib这个命令,它依赖Ruby和RubyGems,因此我们要先下载安装一下(最好在三台服务器上都安装)
# cd /root/bak
# wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.gz
解压到/opt目录下
# tar -zxvf ruby-2.5.1.tar.gz -C /opt/
# cd /opt/ruby-2.5.1/
安装编译环境
# yum -y install openssl openssl-devel
# ./configure --prefix=/usr/local/ruby
# make
# make install
查看安装后的版本
# /usr/local/ruby/bin/ruby -v
设置环境变量
# vi /etc/profile
最后添加
export PATH=$PATH:/usr/local/ruby/bin:
保存退出,执行
source /etc/profile
验证下
echo $PATH
镜像加速
# gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
# gem sources -l
安装ruby的redis接口,版本选择3.3.5的,为何会选择3.3.5的是因为之前装的是4.0以上版本的在移槽过程中出现异常了,故选择3.3.5的亲测没问题。
# gem install redis -v 3.3.5
分别在三台服务器启动六个集群节点
# cd /opt/redis-4.0.10/
# ./src/redis-server redis-cluster/6381/6381.conf
# ./src/redis-server redis-cluster/6382/6382.conf
创建集群
在172.18.183.7服务器执行如下命令创建集群
# ./src/redis-trib.rb create --replicas 1 172.18.183.7:6381 172.18.183.1:6381 172.18.183.3:6381 172.18.183.7:6382 172.18.183.1:6382 172.18.183.3:6382
查看集群信息
# ./src/redis-trib.rb check 172.18.183.7:6381
为redis集群设置密码
修改所有Redis集群中的redis.conf文件加入:
masterauth 123456
requirepass 123456
设置完密码后需要重新启动各节点
设置密码之后如果需要使用redis-trib.rb的各种命令
如:./redis-trib.rb check 172.18.183.7:6381
需要修改密码
# vi /usr/local/ruby/lib/ruby/gems/2.5.0/gems/redis-3.3.5/lib/redis/client.rb
修改password为上面设置的密码即可。
三、参考资料:
redis集群搭建参考
https://blog.csdn.net/csdnmrliu/article/details/83618124
安装ruby参考
https://blog.whsir.com/post-2659.html