MCPcopy Create free account
hub / github.com/F-Stack/f-stack / getKeyFreqs

Function getKeyFreqs

app/redis-6.2.6/src/redis-cli.c:7790–7824  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7788}
7789
7790static void getKeyFreqs(redisReply *keys, unsigned long long *freqs) {
7791 redisReply *reply;
7792 unsigned int i;
7793
7794 /* Pipeline OBJECT freq commands */
7795 for(i=0;i<keys->elements;i++) {
7796 const char* argv[] = {"OBJECT", "FREQ", keys->element[i]->str};
7797 size_t lens[] = {6, 4, keys->element[i]->len};
7798 redisAppendCommandArgv(context, 3, argv, lens);
7799 }
7800
7801 /* Retrieve freqs */
7802 for(i=0;i<keys->elements;i++) {
7803 if(redisGetReply(context, (void**)&reply)!=REDIS_OK) {
7804 sds keyname = sdscatrepr(sdsempty(), keys->element[i]->str, keys->element[i]->len);
7805 fprintf(stderr, "Error getting freq for key '%s' (%d: %s)\n",
7806 keyname, context->err, context->errstr);
7807 sdsfree(keyname);
7808 exit(1);
7809 } else if(reply->type != REDIS_REPLY_INTEGER) {
7810 if(reply->type == REDIS_REPLY_ERROR) {
7811 fprintf(stderr, "Error: %s\n", reply->str);
7812 exit(1);
7813 } else {
7814 sds keyname = sdscatrepr(sdsempty(), keys->element[i]->str, keys->element[i]->len);
7815 fprintf(stderr, "Warning: OBJECT freq on '%s' failed (may have been deleted)\n", keyname);
7816 sdsfree(keyname);
7817 freqs[i] = 0;
7818 }
7819 } else {
7820 freqs[i] = reply->integer;
7821 }
7822 freeReplyObject(reply);
7823 }
7824}
7825
7826#define HOTKEYS_SAMPLE 16
7827static void findHotKeys(void) {

Callers 1

findHotKeysFunction · 0.85

Calls 6

redisAppendCommandArgvFunction · 0.85
redisGetReplyFunction · 0.85
sdscatreprFunction · 0.85
sdsemptyFunction · 0.85
sdsfreeFunction · 0.85
freeReplyObjectFunction · 0.85

Tested by

no test coverage detected