Redis 集群搭建

1 篇文章 0 订阅

Redis 集群搭建

Redis5.0之后的版本放弃了 Ruby 的集群方式,改为使用 C 语言编写的redis-cli的方式,使集群的构建方式复杂度大大降低。此处Redis版本为5.0.6。便于操作,以下6个redis服务均为同一台部署(伪集群)。

Redis安装

  1. 下载Redis安装包

    wget http://download.redis.io/releases/redis-5.0.6.tar.gz
    
  2. 解压压缩包

    tar -zxvf redis-5.0.6.tar.gz
    
  3. yum安装gcc依赖

    yum install gcc -y
    
  4. 进入Redis目录

    cd redis-5.0.6
    
  5. 编译安装

    make MALLOC=libc
    
    cd src && make install
    
  6. 配置文件拷贝

    cp /usr/local/redis-5.0.6/redis.conf /etc/redis/6379.conf
    

Redis集群配置

Redis 集群是一个提供在多个Redis节点间共享数据的程序集。此处以三个master节点和三个slave节点作为示例。Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽。集群的每个节点负责一部分hash槽。

为了使在部分节点失败或者大部分节点无法通信的情况下集群仍然可用,所以集群使用了主从复制模型,每个节点都会有一到多个从节点。例如master-A节点不可用了,集群便会选举slave-A节点作为新的主节点继续服务。

  1. 复制6份Redis的配置文件,如下所示:
    cp /etc/redis/6379.conf /etc/redis/7001.conf
    cp /etc/redis/6379.conf /etc/redis/7002.conf
    cp /etc/redis/6379.conf /etc/redis/7003.conf
    cp /etc/redis/6379.conf /etc/redis/7004.conf
    cp /etc/redis/6379.conf /etc/redis/7005.conf
    cp /etc/redis/6379.conf /etc/redis/7006.conf
    
  2. 修改以下配置项
    port 7001                            # 端口,每个配置文件不同7001-7006
    cluster-enabled yes                  # 启用集群模式
    cluster-config-file nodes_7001.conf  # 节点配置文件,每个配置文件不同7001-7006
    cluster-node-timeout 5000            # 超时时间
    appendonly yes                       # 打开aof持久化
    daemonize yes                        # 后台运行
    protected-mode no                    # 非保护模式
    pidfile  /var/run/redis_7001.pid     # 根据端口修改
    
  3. 启动6个Redis节点
    /usr/local/bin/redis-server /etc/redis/7001.conf
    /usr/local/bin/redis-server /etc/redis/7002.conf
    /usr/local/bin/redis-server /etc/redis/7003.conf
    /usr/local/bin/redis-server /etc/redis/7004.conf
    /usr/local/bin/redis-server /etc/redis/7005.conf
    /usr/local/bin/redis-server /etc/redis/7006.conf
    
  4. 配置集群
    此时启动的6个Redis服务是相互独立运行的,通过以下命令配置集群:
    /usr/local/bin/redis-cli --cluster create --cluster-replicas 1 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 127.0.0.1:7006
    
    配置完,看到如下图所示,则表示集群搭建成功。
    在这里插入图片描述
    从图中可以看到启动了3个master节点,3个slave节点,16384个槽点平均分配到了3个master节点上。图中字母数字的组合为节点的ID。

集群常用命令

  1. 查看集群状态

    redis-cli --cluster check 127.0.0.1:7001
    
  2. 查看节点

    redis-cli -h 127.0.0.1 -p 7001 cluster nodes
    
  3. 添加节点

    添加节点127.0.0.1:7007到集群

    redis-cli --cluster add-node 127.0.0.1:7007 127.0.0.1:7001
    
  4. 删除节点

    从集群中删除 node-id 节点(删除主节点前需重新分片),以下 1bdc25d07bced05f6a65582c6365227d5e6a4530node-id

    redis-cli --cluster del-node 127.0.0.1:7001 1bdc25d07bced05f6a65582c6365227d5e6a4530
    
  5. 节点分片

    127.0.0.1:7007 节点重新分片

    redis-cli --cluster reshard 127.0.0.1:7007
    
  6. 创建从节点

    上面第3点创建了127.0.0.1:7007的主节点,下面为 7007 创建 7008 从节点(7007 的 node-id 为7c593fc948c98d698d4821141af8737279c5c6e)

    redis-cli --cluster add-node 127.0.0.1:7008 127.0.0.1:7001
    
    redis-cli -h 127.0.0.1 -p 7008
    127.0.0.1:7008> cluster replicate 7c593fc948c98d698d4821141af8737279c5c6e3
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值