added a new hvstrlen command

the hvstrlen command returns the length of a hash field value
This commit is contained in:
Jason Roth
2015-02-21 15:01:18 +00:00
parent 0aa5acc8f3
commit db9461e466
4 changed files with 47 additions and 0 deletions

View File

@ -685,6 +685,20 @@ void hlenCommand(redisClient *c) {
addReplyLongLong(c,hashTypeLength(o));
}
void hvstrlenCommand(redisClient *c) {
robj *o;
robj *value;
if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.nullbulk)) == NULL ||
checkType(c,o,REDIS_HASH)) return;
if ((value = hashTypeGetObject(o,c->argv[2])) == NULL) {
addReply(c, shared.nullbulk);
} else {
addReplyLongLong(c,stringObjectLen(value));
decrRefCount(value);
}
}
static void addHashIteratorCursorToReply(redisClient *c, hashTypeIterator *hi, int what) {
if (hi->encoding == REDIS_ENCODING_ZIPLIST) {
unsigned char *vstr = NULL;