美文网首页
如何安装部署Redis集群

如何安装部署Redis集群

作者: 看相声也要敲代码 | 来源:发表于2020-09-18 15:38 被阅读0次

    当你试图解决一个你不理解的问题时,复杂化就产成了。—Andy Boothe

    Redis集群安装部署

    Redis是一个运行在内存的非关系型数据库,因为其速度快(效率高),支持数据的持久化(安全),事务操作的原子性(所有操作的原子性),使得其在高并发场景下广泛使用。Redis也常常在高并发场景下作为缓存服务器的角色进行使用,在《大型网站技术架构:核心原理与案例分析》中提到:高并发场景下性能的优化优先考虑缓存。常用的缓存服务有Redis,MongoDB等。

    image.png

    Redis

    Redis官方网站上可以在Download it选项中获取到Redis的最新版本或者旧版本,本地搭建我使用的是redis-5.0.9.tar.gz版本,比较稳定。可以使用wget命令下载相关压缩包,并对压缩包进行解压如下:

    
      wget http://download.redis.io/releases/redis-5.0.9.tar.gz
    
      tar -zxvf redis-5.0.9.tar.gz -C ~/cache/
    
    

    Redis的编译和安装

    首先我们需要确定我们集群的规模,这里建立集群6个节点,三个master节点,三个slave节点。

    首先我们切换目录到上一步骤的解压目录,cd redis6379,然后执行makemake install命令对Redis进行安装。然后,我们建立集群目录。在Redis集群搭建的过程中主要是Redis的配置文件Redis.conf文件中的配置不同而已,这里我直接拷贝的编译后的Redis目录。可以得到如下节点分布情况:

    image.png

    更改Redis配置为集群模式

    因为在同一台电脑上搭建的Redis集群,所以需要修改Redis的端口号来标识不同的进程,并开启集群模式。六台实例的端口号分布在6379~6384,详细配置如下:

    | 参数 | 参数值 | 额外说明 |

    | :--------- | :--: | ----------- |

    | bind | Ip地址 | 外部可访问IP |

    | port | 端口号 | 需要确认端口是否已被占用 |

    | daemonize | 后台进程 | 设置为yes |

    | pidfile | 进程文件 | 修改为对应端口号 |

    | cluster-enabled | 集群模式 | 设置为yes |

    |cluster-config-file | nodes_7000.conf | 首次启动自动生成 |

    |cluster-node-timeout | 15000 | 请求超时时间,默认15s |

    |appendonly | yes | aof日志开启 |

    Redis启动脚本

    
    path=`pwd`
    
    for dic in `ls $path`
    
    do
    
      if [[ ${dic} == redis* ]] && [[ -d ${dic} ]];then
    
        path=${dic}'/src'
    
        cd ${path}
    
        ./redis-server ../redis.conf
    
        cd ../../
    
      fi
    
    done
    
    

    保存到文件,start-cluster.sh文件中,并执行。

    检查Redis启动情况

    image.png

    创建集群

    在启动集群命令时,我遇到了比较多的问题需要处理,详细问题如下:

    1. ruby版本过低

    2. 执行gem install redis 超时

    等问题。

    关于问题一:需要卸载安装高版本的ruby。我本地虚拟级安装的为2.5.3版本。

    image.png

    主要步骤包括卸载,安装,设置环境变量,安装redis等步骤,详情如下:

    
      # 卸载
    
      yum remove ruby
    
      # 下载新版本
    
      wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.3.tar.gz
    
      # 解压安装
    
      tar zxvf ruby-2.5.3.tar.gz
    
      cd ruby-2.5.3
    
      ./configure --prefix=/usr/local/ruby
    
      make
    
      make install
    
      # 配置环境
    
      export PATH=$PATH:/root/pl/ruby-2.5.3/bin >>/etc/profile
    
      source /etc/profile
    
      # 验证
    
      ruby -version
    
    

    然后就可以执行

    
      gem install redis
    
    

    关于问题二:因为ruby的源是国外的,导致执行gem install redis超时卡死,需要更新yum源头,可按照如下方式更新:

    image.png

    可以拷贝如下命令:

    
    gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
    
    

    处理完以上的问题我们就可以创建集群了,创建集群前,我们已经启动了所有的Redis节点,所以:

    
    ./redis-cli --cluster create IP:6380  IP:6381  IP:6382 IP:6383 IP:6384 --cluster-replicas 1
    
    

    可以大致看一下集群关系:

    
    ./redis-cli -h IP -p 6379 -c cluster slots | xargs  -n8 | awk '{print $3":"$4"->"$6":"$7}' | sort -nk2 -t ':' | uniq
    
    

    执行上面的命令,我们可以得出下面的结果

    
    IP:6379(master)->IP:6383(slave)
    
    IP:6380->IP:6384
    
    IP:6381->IP:6382
    
    

    我们测试一下:

    
    IP:6379> sadd aaa ccc
    
    -> Redirected to slot [10439] located at 192.168.64.134:6380
    
    (integer) 1
    
    

    执行成功,其实Redis集群搭建远远不止这些,后面还会结合Zookeeper对Redis节点进行协调,并设置哨兵等问题对改文档进行更改。希望大家多多关注!!!

    个人公众号信息:看相声也要敲代码

    相关文章

      网友评论

          本文标题:如何安装部署Redis集群

          本文链接:https://www.haomeiwen.com/subject/hqejyktx.html