redis3 集群简单配置

一、安装:

因为最近刚开始接触salt,用了一点点salt的部署,首先redis已经做成了rpm包,主部署配置文件为:

include:
  - yumconf     //自定义引入yum内网源配置
  - redis-ruby   //自定义安装ruby配置集群
redis:
  pkg:
    - installed

这部分为安装ruby主要命令:

yum install -y ruby zlib rubygems &&  gem sources --remove https://rubygems.org/ && gem sources --remove http://rubygems.org/ && gem sources -a https://ruby.taobao.org/ && gem install redis

虽然创建集群ruby包不是必须的,不过redis-trib.rb功能不仅限于此,还可以进一步管理集群,所以推荐安装ruby。


二、配置集群

1、redis官方源码的util目录下有安装文件./install_server.sh,可以轻松完成部署,启动脚本都会帮你弄好。

2、然后通过install_server.sh脚本创建多个实例,为集群做准备。

3、自己写了小脚本对每个配置文件sed替换关键字,开启集群功能。

#!/bin/bash
source /etc/profile
start_port=$1
end_port=$2
if [[ -z ${end_port} ]];then
  PORT=${start_port}
  redis_conf="/etc/redis/${PORT}.conf"
  sed -i 's/# cluster-enabled yes/cluster-enabled yes/' ${redis_conf}
  sed -i 's/# cluster-config-file nodes-6379.conf/cluster-config-file nodes-'$PORT'.conf/' ${redis_conf}
  sed -i 's/# cluster-node-timeout 15000/cluster-node-timeout 5000/' ${redis_conf}  //这个超时定义了主节点挂掉后多久备用节点会接替主节点。
  sed -i 's/appendonly no/appendonly yes/' ${redis_conf}
fi

4、实例启动后使用命令:

./redis-trib.rb create --replicas 1 1.1.1.11:7000 1.1.1.11:7001 1.1.1.12:7000 1.1.1.12:7001 1.1.1.13:7000 1.1.1.13:7001 创建集群节点。( replicas 1表示指定集群中的副本集为1,其中1、2、3为主节点 )


三、命令

1、官方一些命令的使用,为了方便测试,官方提供了一个小工具快速添加kv,地址点我。

2、管理集群

    (1) 对集群重新分片(重新分片操作基本上就是将某些节点上的哈希槽移动到另外一些节点上面),整个过程是不会影响业务运行的。

        可以通过执行命令./redis-trib.rb reshard 1.1.1.13:7000 -> 指定槽位数量 -> 指定从那个节点移动 -> 指定移动到哪个节点/或者选择all 主节点都会成为源节点 -> 完成整个操作。

        整个操作都是针对主节点的,槽位不能移动到slave节点。

    (2) 添加集群节点   

        ./redis-trib.rb add-node 1.1.1.11:7002 1.1.1.13:7000  //1.1.1.13:7000 可以是任意集群中的master节点。

        但是目前新节点仍然不是一个可用节点,接下来, 只要使用 redis-trib 程序, 将集群中的某些哈希桶移动到新节点里面, 新节点就会成为真正的主节点了。

    (3) 成为从节点     

        ./redis-trib.rb add-node --slave 1.1.1.11:7003 1.1.1.11:7002

[ERR] Node 1.1.1.11:7003 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

    执行时有可能遇到上面这种问题,清空一下新增节点的数据目录就ok了。

另一种方法

cluster replicate 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e  //其中命令提供的 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e 就是主节点 127.0.0.1:7005 的节点 ID 。

    (4) 删除节点

    ./redis-trib.rb del-node 1.1.1.11:7000 1e6812dc9884c01d0162124732ba136c6da99e47

详细的还是看文档吧

你可能感兴趣的:(redis3 集群简单配置)