中国体彩网唯一官网
目錄 搜索
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
文字

CLUSTER MEET ip port

自3.0.0起可用。

時間復雜度: O(1)

CLUSTER MEET 用于將啟用了群集支持的不同 Redis 節點連接到工作群集。

其基本思想是,默認情況下節點不相互信任,并且被認為是未知的,因此,由于系統管理錯誤或網絡地址修改,不同的集群節點不太可能混合成一個集群節點。

因此,為了給定節點接受另一個節點進入組成 Redis 集群的節點列表,只有兩種方法:

1. 系統管理員發送 CLUSTER MEET 命令強制節點與另一個節點相遇。

2. 一個已知的節點在八卦部分發送一個我們不知道的節點列表。如果接收節點將發送節點信任為已知節點,則它將處理八卦部分,并向尚未知的節點發送握手。

請注意,Redis 群集需要形成完整的網格(每個節點與其他節點相連),但為了創建群集,不需要發送形成完整網格所需的所有 CLUSTER MEET 命令。重要的是發送足夠的 CLUSTER MEET 消息,以便每個節點都可以通過一系列已知節點到達每個其他節點。由于在心跳包中交換八卦信息,缺失的鏈接將被創建。

因此,如果我們通過 CLUSTER MEET 將節點 A 與節點 B 連接起來,并將 B 與 C 連接起來,則 A 和 C 將找到握手方式并創建鏈接。

另一個例子:如果我們想象一個由以下四個節點組成的集群,稱為 A,B,C 和 D,我們可以發送以下一組命令給 A:

1. CLUSTER MEET B-ip B-port

2. CLUSTER MEET C-ip C-port

3. CLUSTER MEET D-ip D-port

作為A知道并被所有其他節點知曉的副作用,它將在心跳包中發送八卦部分,這將允許每個其他節點與另一個節點創建鏈接,在幾秒鐘內形成完整的網格,甚至如果集群很大。

此外,CLUSTER MEET 不需要互惠。如果我將命令發送給 A 以加入 B,我不需要也將它發送給 B 以加入 A.

實現細節:MEET 和 PING 數據包

當給定節點收到 CLUSTER MEET 消息時,命令中指定的節點仍然不知道我們發送命令的節點。因此,為了使節點強制接收方接受它作為可信節點,它會發送一個MEET數據包而不是 PING 數據包。這兩個數據包的格式完全相同,但前者強制接收方將節點確認為可信。

返回值

簡單的字符串回復:OK如果命令成功。如果指定的地址或端口無效,則返回錯誤。

上一篇: 下一篇:
中国体彩网唯一官网