当前位置 博文首页 > 超负荷小生的博客:redis-cluster集群-三主三从搭建
搭建三主三从,即三组一主一从。组内是主从关系,可以实现高可用;组间是集群关系,实现分工存储。
准备六个节点ip:
192.168.192.131:9001,
192.168.192.131:9002,
192.168.192.131:9003,
192.168.192.131:9004,
192.168.192.131:9005,
192.168.192.131:9006,
这六个中三个master,三个slave,并且具有主从关系
第一步:创建六个文件夹
因为下面配置文件中的–dir设置的是data所以还需要在六个文件夹中创建data文件夹
mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data
第二步:先复制一个配置文件,修改后在复制到其他文件夹
cp /redis-4.0.6/redis.conf 9001 #复制redis.conf到9001
修改配置文件
#取消注释,否则远程连接不上
#bind 127.0.0.1
# 将yes改为no,否则远程连接不上
protected-mode no
#端口
port 1001
#守护进程模式
daemonize yes
#修改pidfile指向路径
pidfile "/var/run/redis_9001.pid"
#修改日志的路径
logfile "自己的路径/redis-4.0.6/redis-cluster/9001/log/redis.log"
#工作目录 ./当前目录也行,要是data还需要新建data文件
dir "自己的路径/redis-4.0.6/redis-cluster/1001/data"
#开启集群配置
cluster-enabled yes
#集群配置文件
cluster-config-file nodes-1001.conf
#过期时间15s,单位是毫秒
cluster-node-timeout 15000
#关键,要不当集群中其中一个主节点宕机后,会导致整个集群不可以。
cluster-require-full-coverage no
#设置访问密码
requirepass testcluster123
#每台节点都配置了密码,如果masterauth没有配置,就会造成主从节点不能切换
masterauth testcluster123
第三步:将9001文件夹中的redis.conf配置文件复制到其他文件夹,在原来基础上,只需要更改以下配置即可
cp 9001/redis.conf 900X
复制到其他文件夹后,需要更改配置文件中的内容
port 900x
pidfile "/var/run/redis_900x.pid"
logfile "自己的文件/redis-4.0.6/redis-cluster/900x/log/redis.log"
dir "自己的文件/redis-4.0.6/redis-cluster/900x/data"
cluster-config-file nodes-100x.conf
mkdir 9001/data
第四步:运行redis,每个配置文件
cd redis-4.0.6/src
redis-server /root/redis-4.0.6/redis_cluster/900X/redis.conf
第五步:集群的创建
1.版本5.0以后执行如下命令:
其中 cluster-replicas 1 代表 一个master后有几个slave,1代表为1个slave节点 ; -a 密码
redis-cli --cluster create ip:9001 ip:9002 127.0.0.1:9003 ip:9004 ip:9005 ip:9006 --cluster-replicas 1 -a testcluster123
2、5.0之前的版本使用redis-trib.rb
安装ruby,使用redis-trib.rb命令
yum install centos-release-scl-rh
yum install rh-ruby23 -y
scl enable rh-ruby23 bash
gem install redis
修改redis-trib.rb脚本:在redis-4.0.6的src下
将
@r = Redis.new(:host => @info[:host], :port => @info[:port], :timeout => 60)
改为:
@r = Redis.new(:host => @info[:host], :port => @info[:port], :timeout => 60, :password => "你的密码")
在src文件夹下执行如下命令
./redis-trib.rb create --replicas 1 ip:9001 ip:9002 ip:9003 ip:9004 ip:9005 ip:9006
效果如下图所示
出现下图的绿色ok表示成功
输入以下命令且必须使用 -c
redis-cli -c -p 9001 -a testcluster123
如图发现set数据时,数据自动分配到9002节点,连接也转移到9002 节点
查看节点信息
模拟9001宕机,9004由从机变为主机