亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

directory search
Cluster cluster addslots(集群 槽位) cluster count failure reports(集群計數(shù)失敗報告) cluster countkeysinslot cluster delslots cluster failover cluster forget cluster getkeysinslot cluster info cluster keyslot(集群鍵槽) cluster meet cluster nodes(集群節(jié)點) 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 SETSLOT slot IMPORTING|MIGRATING|STABLE|NODE [node-id]

自3.0.0起可用。

時間復雜度: O(1)

CLUSTER SETSLOT 負責以不同方式更改接收節(jié)點中散列槽的狀態(tài)。它可以取決于所使用的子命令:

1. MIGRATING子命令:設置遷移狀態(tài)下的散列槽。

2. IMPORTING子命令:在導入狀態(tài)下設置哈希槽。

3. STABLE 子命令:清除散列槽中的任何導入/遷移狀態(tài)。

4. NODE 子命令:將哈希槽綁定到不同的節(jié)點。

該命令及其子命令集對于啟動和結束集群實時重新分片操作很有用,它通過在源節(jié)點中設置遷移狀態(tài)的哈希槽以及在目標節(jié)點中導入狀態(tài)來完成。

下面介紹了每個子命令。最后你會找到如何使用這個命令和其他相關命令執(zhí)行實時重新分片的描述。

CLUSTER SETSLOT <slot>遷移<destination-node-id>

此子命令將一個插槽設置為遷移狀態(tài)。為了在此狀態(tài)下設置一個插槽,接收命令的節(jié)點必須是散列插槽的所有者,否則會返回錯誤。

當插槽設置為遷移狀態(tài)時,節(jié)點將按以下方式更改行為:

1. 如果收到關于現(xiàn)有密鑰的命令,則通常會處理該命令。

2. 如果收到有關不存在的密鑰的命令ASK,節(jié)點將發(fā)出重定向,要求客戶端僅重試該特定查詢destination-node。在這種情況下,客戶端不應該將其哈希槽更新為節(jié)點映射。

3. 如果命令包含多個鍵,如果不存在,則行為與點2相同(如果全部存在),則與點1相同,但如果只存在部分鍵數(shù),則該命令將按TRYAGAIN順序發(fā)出錯誤對于有興趣完成遷移到目標節(jié)點的密鑰,以便可以執(zhí)行多密鑰命令。

集群SETSLOT <slot>導入<source-node-id>

此子命令反轉MIGRATING并準備目標節(jié)點以從指定的源節(jié)點導入密鑰。該命令僅適用于節(jié)點尚不是指定散列槽的所有者的情況。

當插槽在導入狀態(tài)下設置時,節(jié)點以下列方式更改行為:

1. 關于這個散列槽的命令將被拒絕,并且MOVED通常會生成重定向,但是在命令跟在命令后面的ASKING情況下,將執(zhí)行該命令。這樣,當處于遷移狀態(tài)的節(jié)點生成ASK重定向時,客戶端會聯(lián)系目標節(jié)點ASKING發(fā)送命令并立即發(fā)送命令。通過這種方式命令舊節(jié)點中不存在的密鑰或已遷移到目標節(jié)點的密鑰在目標節(jié)點中執(zhí)行,以便:

2. 新密鑰始終在目標節(jié)點中創(chuàng)建。在散列槽遷移期間,我們必須只移動舊密鑰,而不是新密鑰。

3. 為了保證一致性,已經(jīng)遷移的關鍵字命令在作為遷移目標的節(jié)點(新散列槽所有者)的上下文中正確處理。

4. 沒有ASKING這種行為就像平時一樣。這可以確保具有散列槽插入映射的客戶端不會在目標節(jié)點中寫入錯誤,從而創(chuàng)建尚未被遷移的新版本密鑰。

集群SETSLOT <slot>穩(wěn)定

此子命令僅清除插槽中的遷移/導入狀態(tài)。它主要用于修復被錯誤狀態(tài)redis-trib fix卡住的簇。通常在遷移結束時使用SETSLOT ... NODE ...子命令自動清除這兩個狀態(tài),如下一節(jié)所述。

集群SETSLOT <slot>節(jié)點<node-id>

NODE子命令是具有最復雜語義的子命令。它將哈希槽與指定節(jié)點相關聯(lián),但該命令僅在特定情況下起作用,并且根據(jù)槽狀態(tài)具有不同的副作用。以下是該命令的一組前置條件和副作用:

1. 如果當前哈希槽所有者是接收命令的節(jié)點,但為了實現(xiàn)該命令,該槽將被分配給不同的節(jié)點,如果在接收該命令的節(jié)點中仍存在該哈希槽的密鑰,則該命令將返回錯誤。

2. 如果插槽處于遷移狀態(tài),則當插槽分配給另一個節(jié)點時,該狀態(tài)將被清除。

3. 如果插槽在接收命令的節(jié)點中處于導入狀態(tài),并且該命令將該插槽分配給該節(jié)點(在從一個節(jié)點到另一個節(jié)點的散列插槽重新分割結束時發(fā)生在目標節(jié)點中),則該命令具有以下副作用:A)導入狀態(tài)被清除。B)如果節(jié)點配置歷元還不是最大的群集,它會生成一個新的配置歷元,并為其自身分配新的配置歷元。這樣,其新的哈希槽所有權將勝過以前的故障轉移或槽遷移創(chuàng)建的任何過去的配置。

需要注意的是,步驟3是 Redis 集群節(jié)點在未經(jīng)其他節(jié)點同意的情況下創(chuàng)建新配置歷元的唯一時間。這僅在手動配置運行時發(fā)生。然而,這是不可能的,因為 Redis 集群使用配置時期沖突解決算法,所以這會創(chuàng)建一個非瞬時設置,其中兩個節(jié)點具有相同的配置時期。

返回值

簡單字符串回復:OK如果命令成功,則所有子命令都會返回。否則會返回錯誤。

Redis集群實時重新解析解釋

CLUSTER SETSLOT 命令是 Redis Cluster 使用的一個重要組件,用于將一個哈希槽中包含的所有密鑰從一個節(jié)點遷移到另一個節(jié)點。這就是遷移如何在其他命令的幫助下進行編排的。我們將調用當前散列槽所有權的source節(jié)點以及我們想要遷移destination節(jié)點的節(jié)點。

1. 使用CLUSTER SETSLOT <slot> IMPORTING <source-node-id>將目標節(jié)點插槽設置為導入狀態(tài)。

2. 使用CLUSTER SETSLOT <slot> MIGRATING <destination-node-id>將源節(jié)點插槽設置為遷移狀態(tài)。

3. 使用 CLUSTER GETKEYSINSLOT 命令從源節(jié)點獲取密鑰,并使用 MIGRATE 命令將它們移動到目標節(jié)點中。

4. 使用CLUSTER SETSLOT <slot> NODE <destination-node-id>源或目標。

注意:

  • 步驟1和2的順序很重要。我們希望目標節(jié)點ASK在源節(jié)點配置為重定向時準備好接受重定向。

  • 步驟4在技術上不需要使用SETSLOT在不涉及重新分割的節(jié)點中使用,因為配置最終會自我傳播,但是這樣做是一個好主意,以便阻止節(jié)點在被移動的散列插槽時指向錯誤的節(jié)點盡快,導致更少的重定向找到正確的節(jié)點。

Previous article: Next article: