zoukankan      html  css  js  c++  java
  • windows-redis 集群搭建

    Windows 配置Reids集群 Redis Cluster

    1. 下载安装Redis

    Redis官方不支持Windows,但是Microsoft Open Tech group在 GitHub上开发了一个Win64的版本,下载地址为: 
    https://github.com/MSOpenTech/redis/releases

    解压之后,拷贝到自定义的Redis目录下,例如D:devRedis

    打开cmd,切换到Redis目录下,执行

    redis-server redis.windows.conf
    
    • 1
    • 2

    窗口不要关闭,再重新打开一个cmd窗口,连接Redis执行

    redis-cli.exe -h 127.0.0.1 -p 6379
    
    • 1
    • 2

    2. 安装Ruby并配置环境

    安装Ruby,Windows可以安装RubyInstaller,下载地址: 
    http://railsinstaller.org/en

    一直下一步安装完成会自动弹出一个cmd的黑色窗口,需要对Ruby进行配置

    执行 gem install redis 出现 SSL Connect error时,是因为ruby 没有包含 SSL 证书,所以 https 的链接被服务器拒绝。

    解决方法很简单,首先在这里下载证书 http://curl.haxx.se/ca/cacert.pem, 然后再环境变量里设置 SSL_CERT_FILE 这个环境变量,并指向 cacert.pem 文件。

    3. 搭建Redis集群

    要让集群正常运作至少需要三个主节点,不过在刚开始试用集群功能时, 强烈建议使用六个节点: 其中三个为主节点, 而其余三个则是各个主节点的从节点。

    主节点崩溃,从节点的Redis就会提升为主节点,代替原来的主节点工作,崩溃的主Redis回复工作后,会成为从节点

    1). 创建Redis集群目录

    在redis安装的根目录下创建6个以端口命名的文件夹

    mkdir 7000 7001 7002 7003 7004 7005
    
    • 1
    • 2

    将安装的redis文件夹中的redis.windows.conf以及redis-server,分别拷贝到新建的六个文件夹中

    2). 更改配置

    将六个文件夹下的redis.windows.conf文件中以下属性进行修改:

    port 7001(对应文件夹的端口号)
    cluster-enabled yes
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    appendonly yes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3). 启动6个redis服务

    进入每个端口命名的文件夹下启动服务

    cd 7001
    redis-server.exe redis.conf
    
    • 1
    • 2
    • 3

    其他几个目录同上

    4). 创建启动集群

    由于创建启动集群需要redis-trib.rb文件,它是一个 Ruby 程序, 这个程序通过向实例发送特殊命令来完成创建新集群,检查集群或者对集群进行重新分片(reshared)等工作。

    Windows的redis安装文件中是没有这个文件的,我们需要去官网下载Redis,官网的Redis是Linux版本,在其源码src文件夹下,将redis-trib.rb拷贝到本机中Redis的安装目录中

    最后进入redis-trib.rb文件所在目录执行:

    ruby redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
    
    • 1
    • 2

    这个命令在这里用于创建一个新的集群, 选项–replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。之后跟着的其他参数则是这个集群实例的地址列表,3个master3个slave

    redis-trib 会打印出一份预想中的配置给你看, 如果你觉得没问题的话, 就可以输入 yes ,redis-trib 就会将这份配置应用到集群当中,让各个节点开始互相通讯。

    5). 连接集群进行测试

    连接集群的指令:

    redis-cli.exe -c -p 7000
    
    • 1
    • 2

    Redis集群数据分配策略:

    采用一种叫做哈希槽 (hash slot)的方式来分配数据,redis cluster 默认分配了 16384 个slot,当我们set一个key 时,会用CRC16算法来取模得到所属的slot,然后将这个key分到哈希槽区间的节点上,具体算法就是:CRC16(key) % 16384

    注意的是:必须要3个以后的主节点,否则在创建集群时会失败,三个节点分别承担的slot 区间是:

        节点A覆盖0-5460;
        节点B覆盖5461-10922;
        节点C覆盖10923-16383.
    
    • 1
    • 2
    • 3
    • 4

    所以上图中按照redis cluster的哈希槽算法:CRC16(‘name’)%16384 
    被分配到了7001端口的redis服务上。

    至此,Redis Cluster在Windows上的配置就完成了!

    文章来源:http://blog.csdn.net/mrxiagc/article/details/52799081#t2

    源代码:https://pan.baidu.com/s/1bqUpDk7, 密码:p0mo

  • 相关阅读:
    剑指Offer34 数组中的逆序对
    剑指Offer33 第一个只出现一次的字符
    剑指Offer32 丑数
    剑指Offer31 把数组排成最小的数
    剑指Offer30 从1到n整数出现1的个数
    剑指Offer29 连续子数组最大和
    剑指Offer28 最小的K个数(Partition函数应用+大顶堆)
    DNS的递归查询和迭代查询
    剑指Offer27 数组中超过一半的数
    剑指Offer26 字符串的全排列
  • 原文地址:https://www.cnblogs.com/ransom/p/8269141.html
Copyright © 2011-2022 走看看