提交 c2eb4a60 编写于 作者: A antirez

Cluster: use CountKeysInSlot() when we just need the count.

上级 ad3bca1f
......@@ -1534,13 +1534,7 @@ void clusterCommand(redisClient *c) {
if (server.cluster->slots[slot] == server.cluster->myself &&
n != server.cluster->myself)
{
int numkeys;
robj **keys;
keys = zmalloc(sizeof(robj*)*1);
numkeys = GetKeysInSlot(slot, keys, 1);
zfree(keys);
if (numkeys != 0) {
if (CountKeysInSlot(slot) != 0) {
addReplyErrorFormat(c, "Can't assign hashslot %d to a different node while I still hold keys for this hash slot.", slot);
return;
}
......
......@@ -1227,6 +1227,7 @@ int selectDb(redisClient *c, int id);
void signalModifiedKey(redisDb *db, robj *key);
void signalFlushedDb(int dbid);
unsigned int GetKeysInSlot(unsigned int hashslot, robj **keys, unsigned int count);
unsigned int CountKeysInSlot(unsigned int hashslot);
int verifyClusterConfigWithData(void);
/* API to get key arguments from commands */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册