mirror of
https://github.com/fluencelabs/redis
synced 2025-03-19 17:10:50 +00:00
DEBUG SDSLEN added.
This command is only useful for low-level debugging of memory issues due to sds wasting memory as empty buffer at the end of the string.
This commit is contained in:
parent
b34126e378
commit
e21803348a
23
src/debug.c
23
src/debug.c
@ -296,6 +296,29 @@ void debugCommand(redisClient *c) {
|
|||||||
(void*)val, val->refcount,
|
(void*)val, val->refcount,
|
||||||
strenc, (long long) rdbSavedObjectLen(val),
|
strenc, (long long) rdbSavedObjectLen(val),
|
||||||
val->lru, estimateObjectIdleTime(val));
|
val->lru, estimateObjectIdleTime(val));
|
||||||
|
} else if (!strcasecmp(c->argv[1]->ptr,"sdslen") && c->argc == 3) {
|
||||||
|
dictEntry *de;
|
||||||
|
robj *val;
|
||||||
|
sds key;
|
||||||
|
|
||||||
|
if ((de = dictFind(c->db->dict,c->argv[2]->ptr)) == NULL) {
|
||||||
|
addReply(c,shared.nokeyerr);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
val = dictGetVal(de);
|
||||||
|
key = dictGetKey(de);
|
||||||
|
|
||||||
|
if (val->type != REDIS_STRING || !sdsEncodedObject(val)) {
|
||||||
|
addReplyError(c,"Not an sds encoded string.");
|
||||||
|
} else {
|
||||||
|
addReplyStatusFormat(c,
|
||||||
|
"key_sds_len:%lld, key_sds_avail:%lld, "
|
||||||
|
"val_sds_len:%lld, val_sds_avail:%lld",
|
||||||
|
(long long) sdslen(key),
|
||||||
|
(long long) sdsavail(key),
|
||||||
|
(long long) sdslen(val->ptr),
|
||||||
|
(long long) sdsavail(val->ptr));
|
||||||
|
}
|
||||||
} else if (!strcasecmp(c->argv[1]->ptr,"populate") && c->argc == 3) {
|
} else if (!strcasecmp(c->argv[1]->ptr,"populate") && c->argc == 3) {
|
||||||
long keys, j;
|
long keys, j;
|
||||||
robj *key, *val;
|
robj *key, *val;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user