Redis集群维护、运营的相关命令与工具介绍

 

Redis集群的搭建、维护、运营的相关命令与工具介绍

一、概述

此教程主要介绍redis集群的搭建(Linux),集群命令的使用,redis-trib.rb工具的使用,此工具是ruby语言写的,用于集群搭建、集群维护,是官方发布的小工具。而redis怎么获得,怎么编译,请在网上查找其他教程,或者访问redis官网有非常详细的介绍(https://redis.io/download

二、集群的搭建

1.1前期准备工作

支持集群的redis最低版本为redis3.0,最少9redis实例,3个为master6slave,每个master2slave

建议最少3台网络相互独立的服务器,每个服务器运行1master2slave,共3redis实例。

三台服务器的操作系统建议使用Linux CentOS 7.x版本。

每个实例需要2TCP监听端口,一个为普通端口,一个为总线端口,后者在前者的基础上固定+10000,所以只有普通端口是可指定的。总线端口是依赖于普通端口的。

1.2集群参数配置

准备3Linux服务器131415

3个服务器创建目录“/usr/local/src/cluster”,然后在cluster中以端口名分别创建三个目录,130011300213003140011400214003150011500215003

9个目录中安装(或者直接复制)redis实例。这些实例我们称之为结点(node),然后进入参数配置环节。

每个结点目录下有一个redis.conf文件,用编辑工具打开此文件进行编辑:

port 13001/13002/13003/14001/14002/14003/15001/15002/15003

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

appendonly yes

1.3创建集群

创建集群有一个官方发布的专业工具:redis-trib.rb,它是Ruby语言开发的,随redis源码一起发布,在src目录下面,与集群相关的工作可以通过此工具来完成。

安装redis-trib运行环境:redis gem,运行以下命令

gem install redis

创建集群,通过以下命令,启动所有实例(9个)

./redis-server ../redis.conf

然后再把所有实例,按集群方式运行,运行以下命令:

./redis-trib.rb create --replicas 2 192.168.1.13:13001 192.168.1.14:14002 192.168.1.15:15002

192.168.1.14:14001 192.168.1.13:13002 192.168.1.15:15003 192.168.1.15:15001 192.168.1.13:

13003 192.168.1.14:14003

create为关键字,表示创建,--relicas 2表示每个主结点跟着2个从结点。如果成功将出现以下提示:

[OK] All 16384 slots covered

1.4测试

以下的测试实例:

[root@Centos13 13001]# ./src/redis-cli -h 192.168.1.13 -p 13001

192.168.1.13:13001> set foo bar

(error) MOVED 12182 192.168.1.14:14003

192.168.1.13:13001>

[root@Centos13 13001]# ./src/redis-cli -h 192.168.1.14 -p 14003

192.168.1.14:14003> set foo bar

OK

 

关于集群的运行状态更详细的信息,请查看第二章的cluster info命令与第三章的checkinfo命令。

三、集群redis命令

3.1CLUSTER REPLICATE node-id

把某个节点指定给某个主服务做从服务

接收命令的接点为空的主节点(此命令一般针对从节点的)的话,它将变成从的角色(似乎意思是说,如果它是一个非空的主的话,此命令是不能执行的)

只要满足以下条件,从节点都能接收此命令:

指定的node idnode表时是存在的

node id不是我们发命令的节点的id(不能自己给自己发)

node id是个主服务

当以下条件满足时,即使接收命令的节点是一个主节点,也能成功:

接收命令的结点没有给任何槽服务

接收命令的结点是个空结点,没有任何键

 

3.2CLUSTER INFO

打印集群的信息

 

3.3CLUSTER NODES

列出集群当前已知的所有节点(node),以及这些节点的相关信息。

 

3.4CLUSTER MEET <ip> <port>

ip port 所指定的节点添加到集群当中,让它成为集群的一份子。

 

3.5CLUSTER FORGET <node_id>

从集群中移除 node_id 指定的节点。

 

3.6CLUSTER REPLICATE <node_id>

将当前节点设置为 node_id 指定的节点的从节点。

 

3.7CLUSTER SAVECONFIG

将节点的配置文件保存到硬盘里面。

 

3.8CLUSTER ADDSLOTS <slot> [slot ...]

将一个或多个槽(slot)指派(assign)给当前节点。

 

3.9CLUSTER DELSLOTS <slot> [slot ...]

移除一个或多个槽对当前节点的指派。

 

3.10CLUSTER FLUSHSLOTS

移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。

 

3.11CLUSTER SETSLOT <slot> NODE <node_id>

将槽 slot 指派给 node_id 指定的节点。

 

3.12CLUSTER SETSLOT <slot> MIGRATING <node_id>

将本节点的槽 slot 迁移到node_id 指定的节点中。

 

3.13CLUSTER SETSLOT <slot> IMPORTING <node_id>

node_id 指定的节点中导入槽slot 到本节点。

 

3.14CLUSTER SETSLOT <slot> STABLE

取消对槽 slot 的导入(import)或者迁移(migrate)。

 

3.15CLUSTER KEYSLOT <key>

计算键 key 应该被放置在哪个槽上。

 

3.16CLUSTER COUNTKEYSINSLOT <slot>

返回槽 slot 目前包含的键值对数量。

 

3.17CLUSTER GETKEYSINSLOT <slot> <count>

返回 count slot 槽中的键。

 

3.18CLUSTER SLAVES node-id

返回一个master节点的slaves列表

redis-trib工具命令

4.1create创建集群

d create命令可选replicas参数,replicas表示需要有几个slave。最简单命令使用如下:

redis-trib.rb create 10.180.157.199:6379 10.180.157.200:6379 10.180.157.201:6379

有一个slave的创建命令如下:

redis-trib.rb create --replicas 1 10.180.157.199:6379 10.180.157.200:6379 10.180.157.201:6379 10.180.157.202:6379  10.180.157.205:6379  10.180.157.208:6379

创建流程如下:

1、首先为每个节点创建ClusterNode对象,包括连接每个节点。检查每个节点是否为独立且db为空的节点。执行load_info方法导入节点信息。

2、检查传入的master节点数量是否大于等于3个。只有大于3个节点才能组成集群。

3、计算每个

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MingoJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值