centos7 搭建redis6.0.6集群(3主3从)

centos7 搭建redis6.0.6集群(3主3从)

环境信息

[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.8.2003 (Core)

[root@localhost ~]# redis-server --version
Redis server v=6.0.6 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=b0ed8a8a364a67ae

说明
文章搭建的是伪分布式集群,因为我身边没有6台物理机,电脑也带不动6台虚拟机,我在同一台机器上用不同端口模拟了6台机器,将7001、7002、7003、7004、7005、7006

主要是因为穷


一、安装redis6.0.6

下载redis,上传到/opt目录

tar -zxf redis-6.0.6.tar.gz
cd cd redis-6.0.6/
make && make install PREFIX=/usr/local/installredis #指定redis安装路径

二、 拷贝出6个redis实例

先准备出redis的一个实例redis01,然后复制出另外5份实例,最后更改配置文件即可

2.1 准备6个文件夹存放redis实例

首先在/usr/local/下创建目录redis-cluster准备存放6个redis实例

cd /usr/local
mkdir redis-cluster

进入redis-cluster目录创建6个文件夹 redis01、redis02、redis…

cd redis-cluster
mkdir redis01 redis02 redis03 redis04 redis05 redis06

把redis安装路径下bin目录中的所有内容拷贝到redis01

cp -r installredis/bin/*  redis01

此时redis01实例中还没有redis配置文件redis.conf,这个配置文件可以从redis解压目录拷贝,我的在/opt下

cp /opt/redis-6.0.6/redis.conf redis01

2.2 更改 redis01 配置文件redis.conf文件使它支持集群模式


  • daemonize yes
  • port 700X
  • pidfile /var/run/redis_700X.pid
  • cluster-config-file nodes700X
  • cluster-enabled yes(必须配置 启动集群模式
  • bind 192.168.66.66 (必须绑定当前机器的IP地址,不然会无限悲剧,深坑误入
  • dir 低版本需要制定,6.0.6默认是当前路径不用更改(指定数据文件存放的位置,必须指定为不同目录,不然会丢失数据,深坑误入
  • appendonly yes

用vi或vim命令修改redis01的配置文件

vim redis01/redis.conf

下列图片是我7001节点上的配置,可以参考进行配置

daemonize yes
centos7 搭建redis6.0.6集群(3主3从)_第1张图片
port 7001
centos7 搭建redis6.0.6集群(3主3从)_第2张图片

pidfile /var/run/redis_7001.pid
centos7 搭建redis6.0.6集群(3主3从)_第3张图片
cluster-config-file nodes7001
centos7 搭建redis6.0.6集群(3主3从)_第4张图片

cluster-enabled yes(必须配置 启动集群模式)
centos7 搭建redis6.0.6集群(3主3从)_第5张图片

bind 192.168.66.66 (必须绑定当前机器的IP地址,不然会无限悲剧,深坑误入)

centos7 搭建redis6.0.6集群(3主3从)_第6张图片
dir 低版本需要制定,6.0.6默认是当前路径不用更改(指定数据文件存放的位置,必须指定为不同目录,不然会丢失数据,深坑误入)
在这里插入图片描述
appendonly yes
centos7 搭建redis6.0.6集群(3主3从)_第7张图片

2.3 配置好redis01 实例之后复制出5个副本

cp redis01/* redis02
cp redis01/* redis03
cp redis01/* redis04
cp redis01/* redis05
cp redis01/* redis06

分别用vi 或vim编辑各个实例的配置文件,此次修改仅仅需要关注7001的地方修改为对应端口

vim redis02/redis.conf
vim redis03/redis.conf
vim redis04/redis.conf
vim redis05/redis.conf
vim redis06/redis.conf

2.4检查配置

重要的事情说3遍
请检查配置
请检查配置
请检查配置

三、启动6个redis实例

逐个启动太麻烦,在redis-cluster目录下创建脚本文件start-all.sh

vim start-all.sh

将一下内容输入脚本保存

cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..

将start-all.sh 改为可执行文件

chmod u+x start-all.sh

./start-all.sh启动所有实例

centos7 搭建redis6.0.6集群(3主3从)_第8张图片
ps -ef | grep redis
查看所有实例是否都能正常启动,如果不能正常启动,请检查配置,请检查配置,请检查配置,请检查配置,请检查配置,请检查配置
如果不能成功启动,以下操作将毫无意义。
centos7 搭建redis6.0.6集群(3主3从)_第9张图片
现在仅仅是把6个Redis实例准备好了,他们之间并没有什么关系,需要用一条指令把他们创建为一个集群,下面开始创建集群。

四、创建集群

注意
redis5.0以下用如下命令启动
  ./redis-trib.rb create --replicas 1 192.168.66.66:7001 192.168.66.66:7002 192.168.66.66:7003 192.168.66.66:7004 192.168.66.66:7005 192.168.66.66:7006

redis5.0及以上用如下命令启动

redis-cli --cluster create 192.168.66.66:7001 192.168.66.66:7002 192.168.66.66:7003 192.168.66.66:7004 192.168.66.66:7005 192.168.66.66:7006 --cluster-replicas 1

4.1 确认配置信息:

主从节点是否正确,输入yes才会真正的创建集群
centos7 搭建redis6.0.6集群(3主3从)_第10张图片
集群创建成功
centos7 搭建redis6.0.6集群(3主3从)_第11张图片

五、验证集群

5.1 随便进入一个节点

redis-cli -c -h 192.168.66.66 -p 7001

5.2 查看节点信息

cluster nodes 可以看到节点信息,主节点从节点的ip端口
在这里插入图片描述

5.3 验证集群的存储

  • 写操作会在主节点之间转发,不一定存在哪个节点上。

  • 从节点的信息跟随的主节点存储的数据一致。

centos7 搭建redis6.0.6集群(3主3从)_第12张图片

  • 就算自己没有的数据,也可以从别的节点获取到

如:我连接在7001节点上,查看内存数据库中仅有k2、k3、k6、k7等键,但是可以获取到 k5 k8对应的数据
centos7 搭建redis6.0.6集群(3主3从)_第13张图片

六、关闭集群

我关闭是采用逐个节点shutdown的方法关闭,我暂时还不知道官方有没有提供关闭脚本之类的。

七、重启集群

启动所有redis节点即可./start-all.sh

脚下留心
学无止境,只要学不死,就往死力学


八、重新创建集群

创建集群之后,再使用相同的集群创建命令会报错

解决:进入每个目录删掉节点信息相关文件,主要是和node相关的文件,
rdb和aof文件,如需保留数据可以不用删除。


rm -rf appendonly.aof dump.rdb nodes-7005.conf nodes.conf

你可能感兴趣的:(经验分享,redis,linux,centos)