zoukankan      html  css  js  c++  java
  • linux安装redis集群全流程

    背景:

    操作系统:centos

    1. 下载redis安装包

    wget http://download.redis.io/releases/redis-4.0.10.tar.gz

    2. 解压缩redis包

    tar zxvf redis-4.0.10.tar.gz

    3. 进入安装目录

    cd redis-4.0.10

    4. 进行编译

    make

    编译过程中,发现 gcc 未安装

     需要临时安装 GCC

    4.1. 使用 yum 安装 GCC

    yum install gcc-c++ -y

    可使用命令查看安装的 gcc 版本

    再次执行 make 命令进行编译即可。

    5. make 完成之后,会在src目录下生成 redis的服务程序 redis-server,以及用于测试的客户端程序 redis-cli,使用 redis-server 启动 redis 服务

    cd src
    ./redis-server

    如下所示:

    配置集群

    6. 创建集群文件夹,命名为 cluster

    mkdir cluster
    cd cluster

    在cluster目录里创建6个文件夹,以redis集群的实例端口号为名称,数据存放在 端口号/data 文件夹中

    mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data

    在cluster目录里创建bin文件夹,用来存放集群运行脚本,并把安装好的redis的src目录下的运行脚本拷贝到bin目录下,涉及到的脚本为:

    mkreleasehdr.sh,redis-benchmark,redis-check-aof,redis-cli,redis-server,redis-trib.rb,
    命令如下所示:

    cp /data/redis/redis-4.0.10/src/{mkreleasehdr.sh,redis-benchmark,redis-check-aof,redis-cli,redis-server,redis-trib.rb} .

     从已经安装好的redis中复制一个新的redis实例到9001-9006文件夹,并修改 redis.conf 配置

    cp -r /data/redis/redis-4.0.10/* /data/redis/cluster/9002/

    修改redis.conf 配置和单点redis唯一区别如下:

    port 9001(每个节点的端口号)
    daemonize yes
    bind 10.101.96.18(绑定当前机器 IP)
    dir /data/redis/cluster/9001/data/(数据文件存放位置)
    pidfile /var/run/redis_9001.pid(pid 9001和port要对应)
    cluster-enabled yes(启动集群模式)
    cluster-config-file nodes_9001.conf(9001和port要对应)
    cluster-node-timeout 15000
    appendonly yes

    7. 进入/data/redis/bin目录,依次执行以下命令,启动集群中的各个redis实例

    ./redis-server /data/redis/cluster/9001/redis.conf
    ./redis-server /data/redis/cluster/9002/redis.conf
    ./redis-server /data/redis/cluster/9003/redis.conf
    ./redis-server /data/redis/cluster/9004/redis.conf
    ./redis-server /data/redis/cluster/9005/redis.conf
    ./redis-server /data/redis/cluster/9006/redis.conf

    检查一下redis进程,确认是否都正常启动

    ps -el | grep redis

    随便找一个实例,进行读写测试

    [root@gpap-prod-3 bin]# /data/redis/cluster/bin/redis-cli -h 10.101.96.28 -p 9001
    10.101.96.28:9001> set name miao
    (error) CLUSTERDOWN Hash slot not served

    报错了,因为虽然启动且配置了redis集群服务,但是他们暂时还不在一个集群内,互相直接发现不了,而且没有可存储的位置,即没有slot

    安装redis集群需要的ruby和相关中间件,依次执行以下命令:

    yum install ruby
    yum install rubygems
    gem install redis

    执行第三个命令时,抛出异常,提示ruby版本太低,但是使用yum搜索ruby版本列表,2.0已是最高版本,如下所示:

    所以需要换一种方式安装ruby,使用rvm安装ruby,首先去GitHub下载rvm的release稳定版

    GitHub地址:https://github.com/rvm/rvm

    本地下载之后,传到服务器上,解压缩之后,进入rvm目录,执行安装命令

    ./install --auto-dotfiles

    使文件生效(/data是我的rvm安装目录)

    source /data/rvm/scripts/rvm

    安装成功,查看rvm版本

    [root@gpap-prod-3 data]# rvm -v
    rvm 1.29.12 () by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]

    通过rvm进行ruby包管理,安装2.3版本的ruby(不要安装其他版本,有坑)

    rvm install 2.3

    安装完成之后,可以查看下ruby的版本

    [root@gpap-prod-3 ~]# ruby -v
    ruby 2.3.8p459 (2018-10-18 revision 65136) [x86_64-linux]

    再次执行之前报错的命令,顺利完成执行

    [root@gpap-prod-3 ~]# gem install redis
    Fetching redis-4.4.0.gem
    Successfully installed redis-4.4.0
    Parsing documentation for redis-4.4.0
    Installing ri documentation for redis-4.4.0
    Done installing documentation for redis after 0 seconds
    1 gem installed

    执行创建集群的命令,如下所示(--replicas 1 表示主从复制比例为1:1,即一个主节点对应一个从节点)

    /data/redis/cluster/bin/redis-trib.rb create --replicas 1 10.101.96.28:9001 10.101.96.28:9002 10.101.96.28:9003 10.101.96.28:9004 10.101.96.28:9005 10.101.96.28:9006

    输入命令后,会输出对应的主从节点(Master、Slave)的相关日志信息,如下所示:

  • 相关阅读:
    09-JS的事件流的概念(重点)
    08-jQuery的位置信息
    07-小米导航案例
    python-selector模块
    python--day9--异步IO、数据库、队列、缓存
    python--select多路复用socket
    python--gevent高并发socket
    python--协程
    python--进程锁、进程池
    python--多进程
  • 原文地址:https://www.cnblogs.com/miaoying/p/15125334.html
Copyright © 2011-2022 走看看