diff --git a/src/db.c b/src/db.c index 50ed1198..d7233869 100644 --- a/src/db.c +++ b/src/db.c @@ -104,7 +104,10 @@ robj *lookupKeyReadWithFlags(redisDb *db, robj *key, int flags) { /* Key expired. If we are in the context of a master, expireIfNeeded() * returns 0 only when the key does not exist at all, so it's safe * to return NULL ASAP. */ - if (server.masterhost == NULL) return NULL; + if (server.masterhost == NULL) { + server.stat_keyspace_misses++; + return NULL; + } /* However if we are in the context of a slave, expireIfNeeded() will * not really try to expire the key, it only returns information @@ -123,6 +126,7 @@ robj *lookupKeyReadWithFlags(redisDb *db, robj *key, int flags) { server.current_client->cmd && server.current_client->cmd->flags & CMD_READONLY) { + server.stat_keyspace_misses++; return NULL; } } diff --git a/src/t_stream.c b/src/t_stream.c index ec7d2dd3..59eda1b8 100644 --- a/src/t_stream.c +++ b/src/t_stream.c @@ -1898,7 +1898,7 @@ void xackCommand(client *c) { addReplyLongLong(c,acknowledged); } -/* XPENDING [ ] [] +/* XPENDING [ []] * * If start and stop are omitted, the command just outputs information about * the amount of pending messages for the key/group pair, together with @@ -1927,6 +1927,7 @@ void xpendingCommand(client *c) { if (c->argc >= 6) { if (getLongLongFromObjectOrReply(c,c->argv[5],&count,NULL) == C_ERR) return; + if (count < 0) count = 0; if (streamParseIDOrReply(c,c->argv[3],&startid,0) == C_ERR) return; if (streamParseIDOrReply(c,c->argv[4],&endid,UINT64_MAX) == C_ERR)