linux redis集群安装

落日映苍穹つ 2022-12-16 15:21 292阅读 0赞

redis集群安装

  • redis集群安装
    • 1.下载redis
    • 2.创建节点目录并安装
    • 修改配置文件
    • 将配置文件翻入各自目录中
    • 启动redis
    • 上传gem
    • 创建集群
    • 新增集群节点
    • 查询集群状态

redis集群安装

1.下载redis

从官网中可以下下载到最新版本的redis,我这里使用的是5.0.4版本的

  1. wget https://download.redis.io/releases/redis-5.0.4.tar.gz

2.创建节点目录并安装

  • 创建节点目录(演示在同一台机器的不同端口)

    mkdir /app/redis-cluster/redis-1-8701
    mkdir /app/redis-cluster/redis-2-8702
    mkdir /app/redis-cluster/redis-3-8703
    mkdir /app/redis-cluster/redis-4-8704
    mkdir /app/redis-cluster/redis-5-8705
    mkdir /app/redis-cluster/redis-6-8705

  • 进入到redis的下载目录

    进入目录

    cd /user/local/redis

    解压文件

    tar zvf redis-5.0.4.tar.gz

  • 安装到定义目录

    make install PREFIX=/app/redis-cluster/redis-1-8701
    make install PREFIX=/app/redis-cluster/redis-2-8702
    make install PREFIX=/app/redis-cluster/redis-3-8703
    make install PREFIX=/app/redis-cluster/redis-4-8704
    make install PREFIX=/app/redis-cluster/redis-5-8705
    make install PREFIX=/app/redis-cluster/redis-6-8706

修改配置文件

  1. # 主要修改一下四点
  2. port 8701-8706 # 每个节点配置文件只有这里不一样
  3. cluster-enabled yes
  4. masterauth 集群认证密码 ## 如果需要密码则设置
  5. requirepass 登录认证密码 ## 如果需要密码则设置
  6. ## 数据库文件可以根据自己需要配置这里就使用默认的

将配置文件翻入各自目录中

  1. cp redis.conf /app/redis-cluster/redis-1-8701/bin
  2. cp redis.conf /app/redis-cluster/redis-2-8702/bin
  3. cp redis.conf /app/redis-cluster/redis-3-8703/bin
  4. cp redis.conf /app/redis-cluster/redis-4-8704/bin
  5. cp redis.conf /app/redis-cluster/redis-5-8705/bin
  6. cp redis.conf /app/redis-cluster/redis-6-8706/bin

启动redis

  • 在各自的bin目录下执行 如 /app/redis-cluster/redis-1-8701/bin

    ./redis-server redis.conf

上传gem

  • 需要安装 ruby用于搭建redis集群的脚本

    yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison iconv-devel
    yum install gem

  • 安装过程中可能出现的问题

    curl -L get.rvm.io | bash -s stable
    % Total % Received % Xferd Average Speed Time Time Time Current

    1. Dload Upload Total Spent Left Speed

    100 194 100 194 0 0 287 0 —:—:— —:—:— —:—:— 288
    100 24535 100 24535 0 0 15448 0 0:00:01 0:00:01 —:—:— 32932
    Downloading https://github.com/rvm/rvm/archive/1.29.10.tar.gz
    Downloading https://github.com/rvm/rvm/releases/download/1.29.10/1.29.10.tar.gz.asc
    gpg: 已创建目录‘/root/.gnupg’
    gpg: 新的配置文件‘/root/.gnupg/gpg.conf’已建立
    gpg: 警告:在‘/root/.gnupg/gpg.conf’里的选项于此次运行期间未被使用
    gpg: 钥匙环‘/root/.gnupg/pubring.gpg’已建立
    gpg: 于 2020年03月26日 星期四 05时58分42秒 CST 创建的签名,使用 RSA,钥匙号 39499BDB
    gpg: 无法检查签名:没有公钥
    GPG signature verification failed for ‘/usr/local/rvm/archives/rvm-1.29.10.tgz’ - ‘https://github.com/rvm/rvm/releases/download/1.29.10/1.29.10.tar.gz.asc'! Try to install GPG v2 and then fetch the public key:

    1. gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

    or if it fails:

    1. command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
    2. command curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -

    In case of further problems with validation please refer to https://rvm.io/rvm/security

  • 执行提示的命令后再次安装

    command curl -sSL https://rvm.io/mpapis.asc | gpg2 —import -
    command curl -sSL https://rvm.io/pkuczynski.asc | gpg2 —import -

  • ruby需要大于2.4.0

    source /etc/profile.d/rvm.sh
    rvm list known
    rvm install 2.4
    ruby -v
    gem install redis

创建集群

  1. ./redis-cli --cluster create 127.0.0.1:8701 127.0.0.1:8702 127.0.0.1:8703 127.0.0.1:8704 127.0.0.1:8705 127.0.0.1:8706 --cluster-replicas 1 -a 密码
  2. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  3. >>> Performing hash slots allocation on 6 nodes...
  4. Master[0] -> Slots 0 - 5460
  5. Master[1] -> Slots 5461 - 10922
  6. Master[2] -> Slots 10923 - 16383
  7. Adding replica 127.0.0.1:8705 to 127.0.0.1:8701
  8. Adding replica 127.0.0.1:8706 to 127.0.0.1:8702
  9. Adding replica 127.0.0.1:8704 to 127.0.0.1:8703
  10. >>> Trying to optimize slaves allocation for anti-affinity
  11. [WARNING] Some slaves are in the same host as their master
  12. M: 3e5d226358b60a9738c3d33252f806b6174770fb 127.0.0.1:8701
  13. slots:[0-5460] (5461 slots) master
  14. M: 1b82eb3feaef05a61384cc958b6ab3d5260c568e 127.0.0.1:8702
  15. slots:[5461-10922] (5462 slots) master
  16. M: bd3bfdc6e76b0fe0a1d70fe5c0818c271cec443c 127.0.0.1:8703
  17. slots:[10923-16383] (5461 slots) master
  18. S: 71666db8a984818587fc2a12434f13bd1fb2eca9 127.0.0.1:8704
  19. replicates 1b82eb3feaef05a61384cc958b6ab3d5260c568e
  20. S: 9fb977d91f2fcc9cd2474d38829303657b216167 127.0.0.1:8705
  21. replicates bd3bfdc6e76b0fe0a1d70fe5c0818c271cec443c
  22. S: db985cda50930a9336de32cd5740fb9010bb222b 127.0.0.1:8706
  23. replicates 3e5d226358b60a9738c3d33252f806b6174770fb
  24. Can I set the above configuration? (type 'yes' to accept): yes
  25. >>> Nodes configuration updated
  26. >>> Assign a different config epoch to each node
  27. >>> Sending CLUSTER MEET messages to join the cluster
  28. Waiting for the cluster to join
  29. ....
  30. >>> Performing Cluster Check (using node 127.0.0.1:8701)
  31. M: 3e5d226358b60a9738c3d33252f806b6174770fb 127.0.0.1:8701
  32. slots:[0-5460] (5461 slots) master
  33. 1 additional replica(s)
  34. S: db985cda50930a9336de32cd5740fb9010bb222b 127.0.0.1:8706
  35. slots: (0 slots) slave
  36. replicates 3e5d226358b60a9738c3d33252f806b6174770fb
  37. S: 71666db8a984818587fc2a12434f13bd1fb2eca9 127.0.0.1:8704
  38. slots: (0 slots) slave
  39. replicates 1b82eb3feaef05a61384cc958b6ab3d5260c568e
  40. M: 1b82eb3feaef05a61384cc958b6ab3d5260c568e 127.0.0.1:8702
  41. slots:[5461-10922] (5462 slots) master
  42. 1 additional replica(s)
  43. S: 9fb977d91f2fcc9cd2474d38829303657b216167 127.0.0.1:8705
  44. slots: (0 slots) slave
  45. replicates bd3bfdc6e76b0fe0a1d70fe5c0818c271cec443c
  46. M: bd3bfdc6e76b0fe0a1d70fe5c0818c271cec443c 127.0.0.1:8703
  47. slots:[10923-16383] (5461 slots) master
  48. 1 additional replica(s)
  49. [OK] All nodes agree about slots configuration.
  50. >>> Check for open slots...
  51. >>> Check slots coverage...
  52. [OK] All 16384 slots covered.

集群创建成功

新增集群节点

  1. redis-cli --cluster add-node 127.0.0.1:8701 -a 密码
  2. ## 如果灭有密码则可以直接这样加入
  3. redis-cli --cluster add-node 127.0.0.1:8701

查询集群状态

  1. ./redis-cli --cluster check 127.0.0.1:8701 -a 密码
  2. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  3. 127.0.0.1:8701 (3e5d2263...) -> 0 keys | 5461 slots | 1 slaves.
  4. 127.0.0.1:8702 (1b82eb3f...) -> 0 keys | 5462 slots | 1 slaves.
  5. 127.0.0.1:8703 (bd3bfdc6...) -> 0 keys | 5461 slots | 1 slaves.
  6. [OK] 0 keys in 3 masters.
  7. 0.00 keys per slot on average.
  8. >>> Performing Cluster Check (using node 127.0.0.1:8701)
  9. M: 3e5d226358b60a9738c3d33252f806b6174770fb 127.0.0.1:8701
  10. slots:[0-5460] (5461 slots) master
  11. 1 additional replica(s)
  12. S: db985cda50930a9336de32cd5740fb9010bb222b 127.0.0.1:8706
  13. slots: (0 slots) slave
  14. replicates 3e5d226358b60a9738c3d33252f806b6174770fb
  15. S: 71666db8a984818587fc2a12434f13bd1fb2eca9 127.0.0.1:8704
  16. slots: (0 slots) slave
  17. replicates 1b82eb3feaef05a61384cc958b6ab3d5260c568e
  18. M: 1b82eb3feaef05a61384cc958b6ab3d5260c568e 127.0.0.1:8702
  19. slots:[5461-10922] (5462 slots) master
  20. 1 additional replica(s)
  21. S: 9fb977d91f2fcc9cd2474d38829303657b216167 127.0.0.1:8705
  22. slots: (0 slots) slave
  23. replicates bd3bfdc6e76b0fe0a1d70fe5c0818c271cec443c
  24. M: bd3bfdc6e76b0fe0a1d70fe5c0818c271cec443c 127.0.0.1:8703
  25. slots:[10923-16383] (5461 slots) master
  26. 1 additional replica(s)
  27. [OK] All nodes agree about slots configuration.
  28. >>> Check for open slots...
  29. >>> Check slots coverage...
  30. [OK] All 16384 slots covered.

All 16384 slots covered 所有的插槽均有覆盖到
这里一共有6台redis,三主三从一个插槽均有2分副本

发表评论

表情:
评论列表 (有 0 条评论,292人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Redis安装

    一、了解redis集群: redis集群中内置了16384个哈希槽,当需要在redis集群中放置一个key-value时,redis先对key使用crc16算法算出一个结果,