美文网首页技术
Mac 搭建 Redis 集群

Mac 搭建 Redis 集群

作者: 莫那一鲁道 | 来源:发表于2018-08-05 14:09 被阅读281次

    目录

    1. redis 下载
    2. 创建目录 + 配置文件
    3. 关联所有节点
    4. 分配 slot
    5. 主从复制
      总结

    1. redis 下载

    请使用 brew install redis 工具或从官网下载 Redis 4.0.11 is the latest stable version

    2. 创建目录 + 配置文件

    我们准备创建 6 个节点,方便起见,创建 6 个工作目录。

    cd ~
    mkdir redisCluter
    cd redisCluster
    mkdir 7000 7001 7002 7003 7004
    

    目录创建好了,目录名就是端口号。接下来,需要给每个节点配置“配置文件”。
    集群模式下,需要修改下面这些配置。

    # 端口号,每个目录都不同
    port 700X
    # 开启集群模式
    cluster-enabled yes
    #节点超时实际,单位毫秒
    cluster-node-timeout 5000
    #集群内部配置文件(默认为 nodes.conf)
    cluster-config-file nodes.conf
    # 启动 AOF
    appendonly yes
    

    将你下载的 redis 目录下的配置文件(通常在 /usr/local/redis-XXX/redis.conf)拷贝到每个目录下,然后逐一修改。
    然后,逐一进入各个目录,执行命令:

    redis-server redis.conf
    

    这个时候,每个目录下面都会出现几个文件:

    类似图中这样,但可能没有 rdb 文件,因为这是 shutdown redis 的时候生成的。

    3. 关联所有节点

    刚刚我们已经把所有的节点启动了,但此时他们都是互相独立的单个集群节点。要想实现集群,必须将他们关联起来,随便进入一个节点的 redis-cli.
    执行下面的命令:

    ➜  7002 redis-cli -p 7000
    127.0.0.1:7000> cluster meet 127.0.0.1 7001
    OK
    127.0.0.1:7000> cluster meet 127.0.0.1 7002
    OK
    127.0.0.1:7000> cluster meet 127.0.0.1 7003
    OK
    127.0.0.1:7000> cluster meet 127.0.0.1 7004
    OK
    127.0.0.1:7000> cluster meet 127.0.0.1 7005
    OK
    

    此时,所有的节点都关联起来了。

    4. 分配 slot

    我们知道,redis Cluster 是由 16384 个 slot 组成的,那么我们需要将这些槽分散到这其中 3 个节点里(3 主 3 从)。

    执行命令:

    ➜  7002 redis-cli -p 7000 cluster addslots {0..5461}
    ➜  7002 redis-cli -p 7001 cluster addslots {546..10922}
    ➜  7002 redis-cli -p 7002 cluster addslots {10923..16383}
    

    此时节点已经分配好了。通过以下命令验证:

     redis-cli -p 7000 cluster nodes
    

    从图中可以看出,7004,7000, 7005 节点都已经有了 slot,但为什么不是刚刚设置的 7000,7001,7002 呢,因为楼主进行操作过了,但这不是重点。可以略过。

    5. 主从复制

    主节点已经有了 slot,那么最后一步就是将主节点和从节点进行关联,形成主从复制的关系。

    命令如下:
    注意:需要在从节点的 cli 命令窗口关联主节点。不能反着来。

    redis-cli -p 7003 cluster replicate 7000的NodeID
    redis-cli -p 7004 cluster replicate 7001的NodeID
    redis-cli -p 7005 cluster replicate 7002的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 的原理。

    相关文章

      网友评论

        本文标题:Mac 搭建 Redis 集群

        本文链接:https://www.haomeiwen.com/subject/ywrbvftx.html