directory search
Cluster cluster addslots(集群 槽位) cluster count failure reports(集群计数失败报告) cluster countkeysinslot cluster delslots cluster failover cluster forget cluster getkeysinslot cluster info cluster keyslot(集群键槽) cluster meet cluster nodes(集群节点) cluster replicate(集群复制) cluster reset(集群重置) cluster saveconfig cluster set config epoch cluster setslot cluster slaves cluster slots readonly readwrite Connection auth echo ping quit select swapdb Geo geoadd geodist geohash geopos georadius georadiusbymember Hashes hdel hexists hget hgetall hincrby hincrbyfloat hkeys hlen hmget hmset hscan hset hsetnx hstrlen hvals HyperLogLog pfadd pfcount pfmerge Keys del dump exists expire expireat keys migrate move object persist pexpire pexpireat pttl randomkey rename renamenx restore scan sort touch ttl type unlink wait Lists blpop brpop brpoplpush lindex linsert llen lpop lpush lpushx lrange lrem lset ltrim rpop rpoplpush rpush rpushx Pub/Sub psubscribe publish pubsub punsubscribe subscribe unsubscribe Scripting eval evalsha script debug script exists script flush script kill script load Server bgrewriteaof bgsave client getname client kill client list client pause client reply client setname command command count command getkeys command info config get config resetstat config rewrite config set dbsize debug object debug segfault flushall flushdb info lastsave monitor role save shutdown slaveof slowlog time Sets sadd scard sdiff sdiffstore sinter sinterstore sismember smembers smove spop srandmember srem sscan sunion sunionstore Sorted Sets zadd zcard zcount zincrby zinterstore zlexcount zrange zrangebylex zrangebyscore zrank zrem zremrangebylex zremrangebyrank zremrangebyscore zrevrange zrevrangebylex zrevrangebyscore zrevrank zscan zscore zunionstore Strings append bitcount bitfield bitop bitpos decr decrby get getbit getrange getset incr incrby incrbyfloat mget mset msetnx psetex set setbit setex setnx setrange strlen Transactions discard exec multi unwatch watch
characters

CLUSTER ADDSLOTS slot [slot ...]

自3.0.0起可用。

时间复杂度: O(N)其中N是散列槽参数的总数

此命令对于修改节点的群集配置视图很有用。具体来说,它将一组散列槽分配给接收该命令的节点。如果命令成功,节点将把指定的散列槽映射到自己,并开始广播新的配置。

但,请注意:

1. 仅当从接收命令的节点的角度来看,所有指定的插槽当前未分配时,该命令才起作用。节点将拒绝对已经属于某个其他节点(包括它自己)的插槽拥有所有权。

2. 如果多次指定同一个插槽,则命令失败。

3. 作为命令执行的副作用,如果将指定为参数的插槽中的插槽设置为importing,则一旦节点将(先前未绑定的)插槽分配给其自身,则将清除该状态。

示例

例如,以下命令将插槽1 2 3分配给接收该命令的节点:

> CLUSTER ADDSLOTS 1 2 3OK

但是,尝试再次执行它会导致错误,因为已经分配了插槽:

> CLUSTER ADDSLOTS 1 2 3ERR Slot 1 is already busy

在 Redis 集群中的用法

该命令仅适用于集群模式,在以下 Redis 集群操作中很有用:

1. 创建一个新的集群 ADDSLOTS 用于初始设置主节点拆分它们之间的可用哈希槽。

2. 为了修复某些插槽未分配时损坏的群集。

有关插槽传播和警告的信息

请注意,一旦节点为其自身分配一组插槽,它将开始在心跳包头中传播此信息。但是,其他节点只有在插槽尚未与另一个节点绑定的情况下,或者通告新散列插槽的节点的配置历元大于表中当前列出的节点时才会接受信息。

这意味着这个命令只应该被管理 Redis 集群的应用程序所关注,比如redis-trib,如果在正确的上下文中使用该命令会使集群处于错误状态或导致数据丢失。

返回值

简单的字符串回复:OK如果命令成功。否则会返回错误。

Previous article: Next article: