• mac搭建redis集群


    一、安装redis

    1. 安装

    brew install redis

    2. 启动

    redis-server:启动 redis 服务器,默认端口 6379

    redis-cli:启动 redis 客户端

    配置文件目录

    cd /usr/local/etc

    二、配置集群

    在配置文件目录(/usr/local/etc)下进行操作

    1. 创建虚拟节点目录

    在 /usr/local/etc 下创建 redisCluster 目录,并在 redisCluster 目录下创建目录:7000、7001、7002、7003、7004、7005。

    1. mkdir redisCluster
    2. cd redisCluster
    3. mkdir 7000 7001 7002 7003 7004 7005

    2.修改配置文件

    把redis的配置文件复制到每个文件夹下,并修改文件。可以先复制一份修改好参数再复制其他的,只要修改port就可以了,参数修改如下

    # 端口号,每个目录都不同

    port 7000

    # 开启集群模式

    cluster-enabled yes

    #节点超时实际,单位毫秒

    cluster-node-timeout 5000

    #集群内部配置文件(默认为 nodes-6379.conf)

    cluster-config-file nodes-7000.conf

    # 启动 AOF

    appendonly yes

    # 默认是no,改成 yes,意思是是否要后台启动。

    daemonize yes

    复制配置文件

    1. cp ../redis.conf.default ./7000
    2. vim ./7000/redis.conf.default
    3. mv ./7000/redis.conf.default ./7000/7000.conf

    记得修改配置文件中的port参数和文件夹一致

    3.启动redis并验证各节点运行

    1. redis-server /usr/local/etc/redisCluster/7000/7000.conf
    2. ps -ef|grep redis

    4. 关联所有节点

    1. redis-cli -p 7000
    2. cluster meet 127.0.0.1 7001

     

    5.分配槽位

    Cluster 默认会对 key 值使用 crc32 算法进行 hash 得到一个整数值,然后用这个整数值对 16384 进行取模来得到具体槽位

    在分配槽位时,相当于把对应的槽位挂载在指定的节点上, key计算出来的槽位,然后跟据槽位找到对应的节点,将key存储在这个节点上.

    若set sgfoot www.sgfoot.com, 集群计算出对应的槽位是: 6498, 而6498槽位被挂载在127.0.0.1:6392节点上, 不归自己管, 所以会返回一个信息-> Redirected to slot [6498] located at 127.0.0.1:6392 让你去连接6392节点上查看,你刚才存储的值.

    查看帮助: cluster help

    槽位分配错误使用:cluster reset

    分配槽位, 注意只能使用redis-cli方式, 槽位之间是两个小点

    如果报(error) ERR Slot 5462 is already busy 错误的话, 先查看cluster nodes, 排查问题, 实在不行,使用cluster reset重置操作. 重新握手操作.然后再分配槽位.

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

    1. redis-cli -p 7000 cluster addslots {0..5461}
    2. redis-cli -p 7001 cluster addslots {5462..10922}
    3. redis-cli -p 7002 cluster addslots {10923..16383}

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

    redis-cli -p 7000 cluster nodes
    

    前面的一串 16 进制字符串,其实就是后面对应进程节点的NodeId

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

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

    1. redis-cli -p 7003 cluster replicate 7000的NodeID
    2. redis-cli -p 7004 cluster replicate 7001的NodeID
    3. redis-cli -p 7005 cluster replicate 7002的NodeID

    这个NodeID其实就是执行 redis-cli -p 7000 cluster nodes

     查看结果:

    redis-cli -p 7000 cluster nodes
    

     

    6. 测试使用

    这时如果继续使用之前的redis-cli -p 7000命令会报错:

    应使用集群模式:

    redis-cli -c -p 7000
    

     

     其他redis连接查看:

    至此完成。 

  • 相关阅读:
    stm32F103RCT6使用FFT运算分析波形详解(非常新手)
    缓存的力量:提升API性能和可扩展性
    java计算机毕业设计民宿运营管理网站源码+mysql数据库+系统+lw文档+部署
    [NOIP2010 提高组] 机器翻译
    List 实现
    vue+echarts项目十:使用webSocket优化项目:前后端代码改造
    Java EE|进程与线程的区别与联系
    利用transform和border 创造简易图标,以适应uniapp中多字体大小情况下的符号问题
    ES2020-23简单易懂又实用的精选特性讲解 ✨✨日常开发必备干货!✨✨
    Elasticsearch Data Stream 数据流使用
  • 原文地址:https://blog.csdn.net/I_lost/article/details/127124248