Mac 搭建 Redis 集群
1. redis 下载
请使用 brew install redis 工具或从官网下载 Redis 4.0.11 is the latest stable version。
2. 创建目录 + 配置文件
我们准备创建 6 个节点,方便起见,创建 6 个工作目录。
1 | cd ~ |
目录创建好了,目录名就是端口号。接下来,需要给每个节点配置“配置文件”。
集群模式下,需要修改下面这些配置。
1 | # 端口号,每个目录都不同 |
将你下载的 redis 目录下的配置文件(通常在 /usr/local/redis-XXX/redis.conf)拷贝到每个目录下,然后逐一修改。
然后,逐一进入各个目录,执行命令:
1 | redis-server redis.conf |
这个时候,每个目录下面都会出现几个文件:
类似图中这样,但可能没有 rdb 文件,因为这是 shutdown redis 的时候生成的。
3. 关联所有节点
刚刚我们已经把所有的节点启动了,但此时他们都是互相独立的单个集群节点。要想实现集群,必须将他们关联起来,随便进入一个节点的 redis-cli.
执行下面的命令:
1 | ➜ 7002 redis-cli -p 7000 |
此时,所有的节点都关联起来了。
4. 分配 slot
我们知道,redis Cluster 是由 16384 个 slot 组成的,那么我们需要将这些槽分散到这其中 3 个节点里(3 主 3 从)。
执行命令:
1 | ➜ 7002 redis-cli -p 7000 cluster addslots {0..5461} |
此时节点已经分配好了。通过以下命令验证:
1 | redis-cli -p 7000 cluster nodes |
从图中可以看出,7004,7000, 7005 节点都已经有了 slot,但为什么不是刚刚设置的 7000,7001,7002 呢,因为楼主进行操作过了,但这不是重点。可以略过。
5. 主从复制
主节点已经有了 slot,那么最后一步就是将主节点和从节点进行关联,形成主从复制的关系。
命令如下:
注意:需要在从节点的 cli 命令窗口关联主节点。不能反着来。
1 | redis-cli -p 7003 cluster replicate 7000的NodeID |
这个 7000的NodeID
7001的NodeID
7002的NodeID
其实就是执行 redis-cli -p 7000 cluster nodes
命令出现的那一串 16 进制字符串。
如上图所示。
如果一切顺利,那么再次执行 redis-cli -p 7000 cluster nodes
命令,你会看到:
注意红框:master slave,slave 后面跟着的就是 master 的 NodeId。
总结
手动搭建 Redis Cluster 还是很麻烦的,需要下载,配置文件,启动节点,管理节点,分配 slot,管理主从复制等。
Redis 提供了一个小工具:redis-trib.rb,擦用 ruby 编写,内部也是通过这些命令的,直接使用命令有助有我们理解 Redis Cluster 的原理。