美文网首页我爱编程程序员
11 redis cluster集群部署

11 redis cluster集群部署

作者: 逐暗者 | 来源:发表于2017-08-05 12:34 被阅读0次

    上一篇 redis cluster 集群畅谈一 ,主要讲解了 redis cluster 集群架构 的优势、redis cluster 和 redis replication + sentinal 对比、redis cluster 数据分片算法,并简单介绍了原始hash算法 和 一致性hash 算法 + 虚拟节点。从标题看,大家就知道本篇主要讲解 redis cluster 集群 搭建,闲话少说,俺们直接 开撸

    环境准备:
    centos6.5 minimal
    redis-3.2.8
    3 * Node

    注意:redis cluster 集群正常工作至少需要3个主节点,一个高可用,健壮的分布式的集群,每个master都建议至少给一个slave,正式环境建议 6 台机器上去搭建,最少 3 台机器,为了模拟集群搭建,这里使用 3 台 虚拟机器 搭建 6 个实例的redis cluster

    redis 安装

    每个 node 上安装 redis (这里就不讲了,参考博主前面讲解的 redis安装

    redis cluster 相关配置介绍

    cluster-enabled <yes/no> //是否启动 redis cluster 集群

    cluster-config-file <filename> //指定一个文件,集群 redis实例保存集群状态位置,文件主要保存集群中其他机器的信息,比如节点的上线和下限,故障转移; 这是redis本身去维护的

    cluster-node-timeout <milliseconds> //节点存活超时时间,超过milliseconds 时间,集群认为节点宕机,master宕机的话就会触发主备切换,slave宕机就不会提供服务

    redis cluster 集群搭建

    分别定义 6 个 redis 实例配置文件 : 7001.conf,7002.conf,7003.conf,7004.conf,7005.conf,7006.conf

    redis 集群配置
    在每个节点上redis 进行以下操作,以 7001为例

    mkdir -p /etc/redis-cluster //集群信息保存统一目录

    mkdir -p /var/log/redis //日志信息统一保存目录

    mkdir -p /var/redis/7001 // redis 的持久化文件

    目录创建
    将 redis-3.2.8 下redis.conf 拷贝到 /etc/redis 目录中,并改名为 7001.conf,配置信息修改如下:

    cd /usr/local/redis-3.2.8 && cp redis.conf /etc/redis/7001.conf

    port 7001
    cluster-enabled yes
    cluster-config-file /etc/redis-cluster/node-7001.conf
    cluster-node-timeout 15000
    daemonize yes                           
    pidfile /var/run/redis_7001.pid                         
    dir  /var/redis/7001        
    logfile /var/log/redis/7001.log
    bind 192.168.43.16      
    appendonly yes
    
    修改redis 实例启动脚本
    • 在/etc/init.d下,放6个启动脚本,分别为: redis_7001, redis_7002, redis_7003, redis_7004, redis_7005, redis_7006

    cd redis-3.2.8 && cp utils/redis_init_script /etc/init.d/redis_7001 && chmod 777 /etc/init.d/redis_*

    • 每个启动脚本中,修改对应的端口号

      vim redis_7001

    修改对应的启动脚本

    其他7002,7003,7004,7005,7006 重复以上操作

    节点 - redis 实例 对应关系:

    192.168.43.16 7001
    192.168.43.16 7002
    192.168.43.17 7003
    192.168.43.17 7004
    192.168.43.18 7005
    192.168.43.18 7006

    创建集群

    分别启动 6个redis 实例

    cd /etc/init.d/ && ./redis_7001 start
    cd /etc/init.d/ && ./redis_7002 start
    cd /etc/init.d/ && ./redis_7003 start
    cd /etc/init.d/ && ./redis_7004 start
    cd /etc/init.d/ && ./redis_7005 start
    cd /etc/init.d/ && ./redis_7006 start

    通过redis-trib.rb 创建redis cluster

    redis-trib.rb 需要ruby环境,所以需要安装ruby,只需要在一个node 中安装操作即可,这里在192.168.43.16 机器上安装

    yum install -y ruby
    yum install -y rubygems
    gem install redis

    cp /usr/local/redis-3.2.8/src/redis-trib.rb /usr/local/bin //创建软连接

    创建集群

    redis-trib.rb create --replicas 1 192.168.43.16:7001 192.168.43.16:7002 192.168.43.17:7003 192.168.43.17:7004 192.168.43.18:7005 192.168.43.18:7006

    --replicas 表示每个master分配多少个slave

    集群创建

    上图 yes 确认接收当前分配继续完成集群创建

    创建集群成功
    检查集群信息

    redis-trib.rb check 192.168.43.16:7001

    重新创建集群
    • 关闭所有的redis 实例

    pkill redis

    • 清除集群信息保存文件

    cd /etc/redis-cluster && rm -rf *

    • 清除redis 持久化数据文件

    cd /var/redis/7001 && rm -rf *

    • 重新创建,使用上面介绍过的 redis-trib.rb create --replicas 命令即可

    redis-trib.rb create --replicas 1 192.168.43.16:7001 192.168.43.16:7002 192.168.43.17:7003 192.168.43.17:7004 192.168.43.18:7005 192.168.43.18:7006

    好了,本章的redis cluster集群部署就到这里。

    以上就是本章内容,如有不对的地方,请多多指教,谢谢!

    为了方便有需要的人,本系列全部软件都在 https://pan.baidu.com/s/1qYsJZfY

    下章预告:主要讲解 redis cluster 集群畅谈二

    作者:逐暗者 (转载请注明出处)

    相关文章

      网友评论

        本文标题:11 redis cluster集群部署

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