首先准备好三台拥有redis环境的虚拟机
接下来就可以搭建三主三从的redis集群,为了缓解压力,不可能起六台虚拟机部署,所以一台虚拟机上就是一台主机一台从机,端口不一样,首先大致这样分配,
192.168.10.131这台机器上主机端口为6391,从机端口为6392;
192.168.10.132这台机器上主机端口为6393,从机端口为6394;
192.168.10.133这台机器上主机端口为6395,从机端口为6396;
但是最终启动是谁是谁的从机不一定,可能6394是6391的从机,这个是集群内部分配的
第一步:
首先在redis的安装路径下新建一个文件夹cluster
比如我的是这样,可以使用xftp新建,也可以使用命令(每一台都一样)
第二步:
在cluster目录下创建两个.conf文件夹,名字自己取,这里面配置的是主机以及从机的配置文件,启动的时候加载不同文件,则启动不同的机器
比如我的是这样:
对应内容:
上述截图命令如下,注意对应端口号位置都修改成自己的(每台虚拟机都需要改)
bind 0.0.0.0
daemonize yes
protected-mode no
port 6392
logfile "/usr/local/redis/redis-4.0.9/cluster/cluster6392.log"
pidfile /usr/local/redis/redis-4.0.9/cluster6392.pid
dir /usr/local/redis/redis-4.0.9/cluster
dbfilename dump6392.rdb
appendonly yes
appendfilename "appendonly6392.aof"
cluster-enabled yes
cluster-config-file nodes-6392.conf
cluster-node-timeout 5000
第三步:
在对应虚拟机的redis安装目录下执行
redis-server cluster/redis-6391.conf
redis-server cluster/redis-6391.conf
将服务起起来
执行ps -ef|grep redis
就可以看到如图所示,代表当前虚拟机上有两个redis服务,对应端口号后面的[cluster]表示是以集群的形式启动的(同样,三台虚拟机都是同样的操作)
第四步:
构建集群中的主从关系:
./redis-trib.rb create --replicas 1 192.168.10.131:6391 192.168.10.131:6392 192.168.10.132:6393 192.168.10.132:6394 192.168.10.133:6395 192.168.10.133:6396
运行这个命令可以会出错,原因是没有安装ruby
接下来介绍一下ruby安装:
- 上传ruby的压缩包到linux的root目录下(切记ruby的版本需要高于2.0)
对应的安装包网上随便搜一下就可以下载,我这里以ruby-2.7.5.tar.gz为例
2.在root目录下 直接解压 ruby-2.7.5.tar.gz 即可
3.进入ruby解压目录执行命令(这里比较耗时,而且CPU基本上都是百分百跑满)
3.1 ./configure
3.2 make
3.3 sudo make install
4.查看ruby版本信息
ruby -v
5.需要安装redis 的gem环境(redis-3.2.0.gem这个安装包也是网上一搜就有)
上传redis-3.2.0.gem 到linux的root目录下opt目录下
然后在opt目录下执行命令
gem install --local redis-3.2.0.gem
然后就可以进入redis安装目录的src目录下去配置redis集群(这里也要修改成自己的ip以及端口号)
./redis-trib.rb create --replicas 1 192.168.10.131:6391 192.168.10.131:6392 192.168.10.132:6393 192.168.10.132:6394 192.168.10.133:6395 192.168.10.133:6396
如此,三主三从就搭建好了
可以通过 redis-cli -p 6391进入redis,用info replication查看当前虚拟机端口为6391的信息,(不建议用info,那样消息太多,看得眼花)
使用cluster nodes命令查看当前集群信息,可以看到谁是谁的从机,比如这里6391的id为
2e8b417656f1511473214724bcc0c0f5bba1ad77,可以看到6394这台从机后面对应的主机id就是2e8b417656f1511473214724bcc0c0f5bba1ad77,所以94这台从机就是91主机的从机
使用cluster info 查看集群信息,比如有6台机器等,