原生命令安装Redis集群

  • 使用原生命令安装Redis集群
  • 配置开启节点
  • 使用meet操作
  • 分配槽
  • 主从分配


使用原生命令安装Redis集群

使用原生命令安装Redis集群虽然使用的不多,但在学习阶段使用命令安装可以加深我们自己对整个过程的理解,熟悉强化!ok开始吧!
安装过程分为四步(所有过程中我只是在一台机器上模拟)

  1. 配置开启节点
  2. 使用meet操作
  3. 分配槽
  4. 设置主从

配置开启节点

配置开启Redis节点,主要配置为:

//配置自己的端口
port 8000
//yes表示设置为以守护进程的方式运行
daemonize yes
//工作目录
dir "/home/software/redis/bin/data/cluster"
//日志文件名
logfile "8000.log"
//设置生成的RDB文件名
dbfilename "dump-8000.rdb"
//表示以集群的方式启动
cluster-enabled yes
//集群本地的配置文件
cluster-config-file nodes-8000.conf
//若其中一个节点出现问题则整个集群不对外提供服务,默认为yes,一般设置为no
cluster-require-full-coverage no

一个节点就配置好了,保存的文件名为redis-8000.conf。为了更好的模拟效果,我这里使用了6个节点,即需要六个配置文件,当然不需要再将这个配置文件重复编写,我们只需要复制一下就好了,使用如下命令:

sed “s/8000/8001/g” redis-8000.conf > redis-8001.conf

上面的命令表示将redis-8000.conf文件下所有的8000替换为8001,并生成一个新的文件redis-8001.conf。
同理,生成六个配置文件。
生成之后可以使用命令确认一下是否生成。
ok!配置完了以后我们就可以启动服务了。

…/redis-server redis-8000.conf

上面的命令以我们自己的编写的配置文件启动了一个节点,同理,将编写的六个节点都启动!
可以采用命令

ps -ef | grep redis

检查一下这些命令是否都启动了,可以看到有六个正在运行的进程

redis 解散集群指令 redis集群关闭命令_集群


OK!到这里第一步就搞定了

使用meet操作

meet操作的目的在于让每个集群里的节点可以相互感知,直接使用命令

…/redis-cli -p 8000 cluster meet 127.0.0.1 8001

执行成功后8000和8001端口的节点就可以相互感知了,同理,让六个节点之间都可以相互感知

使用命令

redis 解散集群指令 redis集群关闭命令_redis 解散集群指令_02

…/redis-cli -p 8000 cluster nodes

可以看到所有节点之间已经可以感知了,达成了握手

redis 解散集群指令 redis集群关闭命令_redis 解散集群指令_03


ok,第二步搞定!

分配槽

分配槽过程可以自己编写一个脚本文件,我这里命令为addslots.sh,内容如下

start=$1
end=$2
port=$3
for slot in seq ${start} ${end} do
echo “${slot}”
…/redis-cli -p ${port} cluster addslots ${slot}
done

为了实现高可用,我们六个节点可以分为三主三从,下一步将会看到,所以会将总共16384个槽(关于槽的概念如果不理解可以查一下相关资料,这里不深究)分给三个主节点,这里选取8000,8001,8002这三个为主节点,所以

0~5461是属于8000节点
5462~10922是属于8001节点
10923~16383是属于8002节点

然后我们执行刚才编写的那个脚本文件

sh addslosts.sh 0 5461 8000

redis 解散集群指令 redis集群关闭命令_集群_04


输入一大串之后可以看到OK,说明就分配成功了

同理,给8001和8002也分配槽

执行完毕后,再次执行

…/redis -server -p 8000 cluster nodes

可以看到已经分配完成了

redis 解散集群指令 redis集群关闭命令_redis 解散集群指令_05

主从分配

这里我们以8003对应8000,8004对应8001,8005对应8002
直接执行命令

…/resdis-cli -p 8003 cluster replicate 对应的id
如果id为1234567890,则执行
…/resdis-cli -p 8003 cluster replicate 1234567890

redis 解散集群指令 redis集群关闭命令_配置文件_06


执行一下命令可以看见8003,8004,8005所对应的节点变为了slave,即从节点,也可以看到我们在上一步给每个节点分配的对应的槽

redis 解散集群指令 redis集群关闭命令_集群_07


ok!到这里我们四步就做完了。

执行一个命令试试看

…/redis-cli -c -p 80000

可以看到执行成功了

redis 解散集群指令 redis集群关闭命令_redis 解散集群指令_08