• redis集群安装


    安装方法摘自 http://www.redis.cn/topics/cluster-tutorial.html

    这个方法为简单版的方法,在原文的基础上,我加了一点参数,其他参数配置可以请教其他大神

    搭建并使用Redis集群

    搭建集群的第一件事情我们需要一些运行在 集群模式的Redis实例. 这意味这集群并不是由一些普通的Redis实例组成的,集群模式需要通过配置启用,开启集群模式后的Redis实例便可以使用集群特有的命令和特性了.

    下面是一个最少选项的集群的配置文件:

    bind 192.168.10.150
    port 7000 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes
    daemonize yes

    PS:bind可不写,默认127.0.0.1

    文件中的 cluster-enabled 选项用于开实例的集群模式, 而 cluster-conf-file 选项则设定了保存节点配置文件的路径, 默认值为 nodes.conf.节点配置文件无须人为修改, 它由 Redis 集群在启动时创建, 并在有需要时自动进行更新。

    demonize为线程守护,设为yes

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

    首先, 让我们进入一个新目录, 并创建六个以端口号为名字的子目录, 稍后我们在将每个目录中运行一个 Redis 实例: 命令如下:

    mkdir cluster-test
    cd cluster-test
    mkdir 7000 7001 7002 7003 7004 7005
    

    在文件夹 7000 至 7005 中, 各创建一个 redis.conf 文件, 文件的内容可以使用上面的示例配置文件, 但记得将配置中的端口号从 7000 改为与文件夹名字相同的号码。

    从 Redis Github 页面 的 unstable 分支中取出最新的 Redis 源码, 编译出可执行文件 redis-server , 并将文件复制到 cluster-test 文件夹, 然后使用类似以下命令, 在每个标签页中打开一个实例:

    cd 7000
    ../redis-server ./redis.conf
    

    PS:执行redis-server的命令时,必须进入对应的cluster文件夹里面执行

    实例打印的日志显示, 因为 nodes.conf 文件不存在, 所以每个节点都为它自身指定了一个新的 ID :

    [82462] 26 Nov 11:56:55.329 * No cluster configuration found, I'm 97a3a64667477371c4479320d683e4c8db5858b1
    

    实例会一直使用同一个 ID , 从而在集群中保持一个独一无二(unique)的名字。

    搭建集群

    现在我们已经有了六个正在运行中的 Redis 实例, 接下来我们需要使用这些实例来创建集群, 并为每个节点编写配置文件。

    通过使用 Redis 集群命令行工具 redis-trib , 编写节点配置文件的工作可以非常容易地完成: redis-trib 位于 Redis 源码的 src 文件夹中, 它是一个 Ruby 程序, 这个程序通过向实例发送特殊命令来完成创建新集群, 检查集群, 或者对集群进行重新分片(reshared)等工作。

    ./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

    (如果redis.conf里的bind不为空,则此处为ip:port)
    这一步可能出现

    /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- redis (LoadError)

    from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'

    类似的错误,这是因为没有安装ruby(https://www.cnblogs.com/ytfcz/p/5275633.html)

    yum install gem 
    gem install redis 
    wget https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.7.tar.gz
    tar xf ruby-2.2.7.tar.gz
    cd ruby-2.2.7
    ./configure --prefix=/usr/local/ruby-2.2.7
    make && make install

    #yum install rubygems这个命令没试过不知道行不行
    ln -s /usr/local/ruby-2.2.7/bin/ruby /usr/bin/ruby
    ruby -v
    ruby 2.2.7p470 (2017-03-28 revision 58194) [x86_64-linux]

    这个命令在这里用于创建一个新的集群, 选项–replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。

    之后跟着的其他参数则是这个集群实例的地址列表,3个master3个slave redis-trib 会打印出一份预想中的配置给你看, 如果你觉得没问题的话, 就可以输入 yes , redis-trib 就会将这份配置应用到集群当中,让各个节点开始互相通讯,最后可以得到如下信息:

    [OK] All 16384 slots covered

    连接集群:
    redis-cli -c -p 7000
    -c为必须选择,否则可能操作时出现 (error) MOVED

  • 相关阅读:
    HDU 2236 无题Ⅱ
    Golden Tiger Claw(二分图)
    HDU 5969 最大的位或 (思维,贪心)
    HDU 3686 Traffic Real Time Query System (图论)
    SCOI 2016 萌萌哒
    Spring Boot支持控制台Banner定制
    构建第一个Spring Boot程序
    Spring Boot重要模块
    Java fastjson JSON和String互相转换
    BCompare 4 Windows激活方法【试用期30天重置】
  • 原文地址:https://www.cnblogs.com/jaxlove-it/p/8337528.html
Copyright © 2020-2023  润新知