From 1abce14611e01b38e0b461a12a01ce71b35a6342 Mon Sep 17 00:00:00 2001 From: antirez Date: Mon, 25 Feb 2013 11:15:03 +0100 Subject: [PATCH] Cluster: added new API countKeysInSlot(). This is similar to getKeysInSlot() but just returns the number of keys found in a given hash slot, without returning the keys. --- src/db.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/db.c b/src/db.c index 7ecb959c..d4d24b7a 100644 --- a/src/db.c +++ b/src/db.c @@ -778,3 +778,19 @@ unsigned int GetKeysInSlot(unsigned int hashslot, robj **keys, unsigned int coun } return j; } + +unsigned int CountKeysInSlot(unsigned int hashslot) { + zskiplistNode *n; + zrangespec range; + int j = 0; + + range.min = range.max = hashslot; + range.minex = range.maxex = 0; + + n = zslFirstInRange(server.cluster->slots_to_keys, range); + while(n && n->score == hashslot) { + j++; + n = n->level[0].forward; + } + return j; +}