Optimize the performance of multi-key commands in cluster mode (#11044)
* Optimize the performance of multi-key commands in cluster mode * add note
This commit is contained in:
parent
6a7dd00cdd
commit
7d8911d22a
@ -6747,18 +6747,17 @@ clusterNode *getNodeByQuery(client *c, struct redisCommand *cmd, robj **argv, in
|
||||
} else {
|
||||
/* If it is not the first key/channel, make sure it is exactly
|
||||
* the same key/channel as the first we saw. */
|
||||
if (!equalStringObjects(firstkey,thiskey)) {
|
||||
if (slot != thisslot) {
|
||||
/* Error: multiple keys from different slots. */
|
||||
getKeysFreeResult(&result);
|
||||
if (error_code)
|
||||
*error_code = CLUSTER_REDIR_CROSS_SLOT;
|
||||
return NULL;
|
||||
} else {
|
||||
/* Flag this request as one with multiple different
|
||||
* keys/channels. */
|
||||
multiple_keys = 1;
|
||||
}
|
||||
if (slot != thisslot) {
|
||||
/* Error: multiple keys from different slots. */
|
||||
getKeysFreeResult(&result);
|
||||
if (error_code)
|
||||
*error_code = CLUSTER_REDIR_CROSS_SLOT;
|
||||
return NULL;
|
||||
}
|
||||
if (importing_slot && !multiple_keys && !equalStringObjects(firstkey,thiskey)) {
|
||||
/* Flag this request as one with multiple different
|
||||
* keys/channels when the slot is in importing state. */
|
||||
multiple_keys = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user