参考文档
http://redis.io/topics/cluster-tutorial
http://redis.io/topics/cluster-spec
http://redis.readthedocs.org/en/latest/index.html
redis 3.0 设计原理
http://blog.csdn.net/yfkiss/article/details/39996129
使用 redis-trib 配置的前提依赖包
yum install ruby
yum install rubygems
gem install redis --version 3.0.0 ( yum install 没有,所以换 gem install )
下载 redis 3.0.0安装包后,make 编译后, src 目录下会出现 redis-server, redis-cli 等命令,然后自己编好 conf ,然后启动 7001-7006 6个redis-server
然后用 redis-trib.rb create 初始化集群,如下
输入 yes 后
这样 16384 个 slot 就分给了 7001, 7002, 7003 三个 master 了, 7004, 7005, 7006 分别对应是这三个 mater 的 slave
redis-cli -p 7000 cluster info ,前后对比如下
redis-cli -p 7001 cluster nodes 列出所有的节点
cluster 的 常用命令如下
集群 CLUSTER INFO 打印集群的信息 CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息。 节点 CLUSTER MEET <ip> <port> 将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。 CLUSTER FORGET <node_id> 从集群中移除 node_id 指定的节点。 CLUSTER REPLICATE <node_id> 将当前节点设置为 node_id 指定的节点的从节点。 CLUSTER SAVECONFIG 将节点的配置文件保存到硬盘里面。 槽(slot) CLUSTER ADDSLOTS <slot> [slot ...] 将一个或多个槽(slot)指派(assign)给当前节点。 CLUSTER DELSLOTS <slot> [slot ...] 移除一个或多个槽对当前节点的指派。 CLUSTER FLUSHSLOTS 移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。 CLUSTER SETSLOT <slot> NODE <node_id> 将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽>,然后再进行指派。 CLUSTER SETSLOT <slot> MIGRATING <node_id> 将本节点的槽 slot 迁移到 node_id 指定的节点中。 CLUSTER SETSLOT <slot> IMPORTING <node_id> 从 node_id 指定的节点中导入槽 slot 到本节点。 CLUSTER SETSLOT <slot> STABLE 取消对槽 slot 的导入(import)或者迁移(migrate)。 键 CLUSTER KEYSLOT <key> 计算键 key 应该被放置在哪个槽上。 CLUSTER COUNTKEYSINSLOT <slot> 返回槽 slot 目前包含的键值对数量。 CLUSTER GETKEYSINSLOT <slot> <count> 返回 count 个 slot 槽中的键。