• Redis集群部署文档(Ubuntu15.10系统)


    Redis集群部署文档(Ubuntu15.10系统)
    (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下)
    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:下载redis。官网下载3.0.0版本,之前2.几的版本不支持集群模式
    下载地址:http://download.redis.io/releases/redis-3.0.7.tar.gz
    2:上传服务器,解压,编译

    tar -zxvf redis-3.0.7.tar.gz
    mv redis-3.0.7 /usr/local/redis3.0
    cd /usr/local/redis3.0
    make

    之后就生成了 redis-server redis-client 等文件在 src里。


    3:创建集群需要的目录

    mkdir -p /usr/local/cluster
    cd /usr/local/cluster
    mkdir 7000
    mkdir 7001
    mkdir 7002
    mkdir 7003
    mkdir 7004
    mkdir 7005

    4:修改配置文件redis.conf
    cp /usr/local/redis3.0/redis.conf /usr/local/cluster
    vi redis.conf
    ##修改配置文件中的下面选项

    pidfile /var/run/redis.7000.pid #个性化
    port 7000 #个性化
    daemonize yes
    cluster-enabled yes
    cluster-config-file nodes.7000.conf #个性化
    cluster-node-timeout 5000
    appendonly yes
    appendfilename "appendonly.7000.aof" #个性化

    ##修改完redis.conf配置文件中的这些配置项之后把这个配置文件分别拷贝到7000/7001/7002/7003/7004/7005目录下面

    cp /usr/local/cluster/redis.conf /usr/local/cluster/7000
    cp /usr/local/cluster/redis.conf /usr/local/cluster/7001
    cp /usr/local/cluster/redis.conf /usr/local/cluster/7002
    cp /usr/local/cluster/redis.conf /usr/local/cluster/7003
    cp /usr/local/cluster/redis.conf /usr/local/cluster/7004
    cp /usr/local/cluster/redis.conf /usr/local/cluster/7005

    ##注意:拷贝完成之后要修改7001/7002/7003/7004/7005目录下面redis.conf文件中 标注个性化的 参数,分别改为对应的文件夹的名称


    5:分别启动这6个redis实例
    vi /usr/local/cluster/redis-start.sh
    加入以下内容

    #!/bin/sh
    /usr/local/redis3.0/src/redis-server /usr/local/cluster/7000/redis.conf &
    /usr/local/redis3.0/src/redis-server /usr/local/cluster/7001/redis.conf &
    /usr/local/redis3.0/src/redis-server /usr/local/cluster/7002/redis.conf &
    /usr/local/redis3.0/src/redis-server /usr/local/cluster/7003/redis.conf &
    /usr/local/redis3.0/src/redis-server /usr/local/cluster/7004/redis.conf &
    /usr/local/redis3.0/src/redis-server /usr/local/cluster/7005/redis.conf &

    然后

    chmod +x /usr/local/cluster/redis-start
    /usr/local/cluster/redis-start

    ##启动之后使用命令查看redis的启动情况ps -ef|grep redis


    6:执行redis的创建集群命令创建集群
    安装ruby ,因为./redis-trib.rb 是执行的ruby的脚本,需要ruby的环境
    sudo apt-get install ruby

    为了执行 redis-trib.rb 需要安装 gem redis sudo gem install redis 可能会有长城防火墙的问题
    可以去https://rubygems.org/gems/redis/versions/3.2.2 下载最新版本。
    然后用命令 sudo gem install redis-3.2.2.gem

    cd /usr/local/redis3.0/src
    ./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

    有下面输出表示成功了。

    >>> Creating cluster
    >>> Performing hash slots allocation on 6 nodes...
    Using 3 masters:
    127.0.0.1:7000
    127.0.0.1:7001
    127.0.0.1:7002
    Adding replica 127.0.0.1:7003 to 127.0.0.1:7000
    Adding replica 127.0.0.1:7004 to 127.0.0.1:7001
    Adding replica 127.0.0.1:7005 to 127.0.0.1:7002
    M: 1cdc6971ddbcf64427a9499e19b048afa55aff08 127.0.0.1:7000
       slots:0-5460 (5461 slots) master
    M: a355b2ccb1fdf413652a14cec722076af958a079 127.0.0.1:7001
       slots:5461-10922 (5462 slots) master
    M: 0bc286b514d36e7195142ff0d55a87542048b5a9 127.0.0.1:7002
       slots:10923-16383 (5461 slots) master
    S: a3b7c85fe957917bd383b181de3f1a3f31df8a05 127.0.0.1:7003
       replicates 1cdc6971ddbcf64427a9499e19b048afa55aff08
    S: 9f0f4045497a72b64783fd9c2387f38b7e3bda6c 127.0.0.1:7004
       replicates a355b2ccb1fdf413652a14cec722076af958a079
    S: f4b371c4e1d0fddfbe1552e540ddd36a5a00200b 127.0.0.1:7005
       replicates 0bc286b514d36e7195142ff0d55a87542048b5a9
    Can I set the above configuration? (type 'yes' to accept): yes
    >>> Nodes configuration updated
    >>> Assign a different config epoch to each node
    >>> Sending CLUSTER MEET messages to join the cluster
    Waiting for the cluster to join...
    >>> Performing Cluster Check (using node 127.0.0.1:7000)
    M: 1cdc6971ddbcf64427a9499e19b048afa55aff08 127.0.0.1:7000
       slots:0-5460 (5461 slots) master
    M: a355b2ccb1fdf413652a14cec722076af958a079 127.0.0.1:7001
       slots:5461-10922 (5462 slots) master
    M: 0bc286b514d36e7195142ff0d55a87542048b5a9 127.0.0.1:7002
       slots:10923-16383 (5461 slots) master
    M: a3b7c85fe957917bd383b181de3f1a3f31df8a05 127.0.0.1:7003
       slots: (0 slots) master
       replicates 1cdc6971ddbcf64427a9499e19b048afa55aff08
    M: 9f0f4045497a72b64783fd9c2387f38b7e3bda6c 127.0.0.1:7004
       slots: (0 slots) master
       replicates a355b2ccb1fdf413652a14cec722076af958a079
    M: f4b371c4e1d0fddfbe1552e540ddd36a5a00200b 127.0.0.1:7005
       slots: (0 slots) master
       replicates 0bc286b514d36e7195142ff0d55a87542048b5a9
    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK] All 16384 slots covered.

    这样redis-cluster集群就启动了


    7、查看集群目前状况:

    $ redis-cli -c -p 7000
    127.0.0.1:7000> cluster info
    cluster_state:ok
    cluster_slots_assigned:16384
    cluster_slots_ok:16384
    cluster_slots_pfail:0
    cluster_slots_fail:0
    cluster_known_nodes:6
    cluster_size:3
    cluster_current_epoch:0
    cluster_stats_messages_sent:8770
    cluster_stats_messages_received:8770


    8、测试存值取值:每一次操作过后可能就跳到别的里面了。就是那个Redirected to slot ……

    127.0.0.1:7002> set foo bar
    OK
    127.0.0.1:7000> set hello world
    OK
    127.0.0.1:7000> get foo
    -> Redirected to slot [12182] located at 127.0.0.1:7002
    "bar"
    127.0.0.1:7002> get hello
    -> Redirected to slot [866] located at 127.0.0.1:7000
    "world"
    127.0.0.1:7000> get name
    -> Redirected to slot [5798] located at 127.0.0.1:7001
    (nil)
    127.0.0.1:7001> 
    127.0.0.1:7002> get name
    -> Redirected to slot [5798] located at 127.0.0.1:7001
    (nil)
    127.0.0.1:7001> 

     

  • 相关阅读:
    springboot的@EnableAutoConfiguration起作用的原理
    springboot加载bean过程探索
    dubbo源码阅读笔记-如何引用远程服务,变成invoker
    HashMap如何实现序列化
    如果处理缓存失效从数据库加载数据
    redis设计原则
    redis相关运维命令
    spring的compentScan注解扫描类机制
    全文检索技术
    前端设计网站
  • 原文地址:https://www.cnblogs.com/wayne173/p/5338131.html
Copyright © 2020-2023  润新知