Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
d841dedb
Commit
d841dedb
authored
Dec 20, 2010
by
antirez
Browse files
Merge branch 'master' of github.com:antirez/redis
parents
4c22fd34
18059676
Changes
3
Show whitespace changes
Inline
Side-by-side
src/redis.c
View file @
d841dedb
...
@@ -891,6 +891,7 @@ void initServer() {
...
@@ -891,6 +891,7 @@ void initServer() {
server.stat_numcommands = 0;
server.stat_numcommands = 0;
server.stat_numconnections = 0;
server.stat_numconnections = 0;
server.stat_expiredkeys = 0;
server.stat_expiredkeys = 0;
server.stat_evictedkeys = 0;
server.stat_starttime = time(NULL);
server.stat_starttime = time(NULL);
server.stat_keyspace_misses = 0;
server.stat_keyspace_misses = 0;
server.stat_keyspace_hits = 0;
server.stat_keyspace_hits = 0;
...
@@ -1177,6 +1178,7 @@ sds genRedisInfoString(void) {
...
@@ -1177,6 +1178,7 @@ sds genRedisInfoString(void) {
"total_connections_received:%lld\r\n"
"total_connections_received:%lld\r\n"
"total_commands_processed:%lld\r\n"
"total_commands_processed:%lld\r\n"
"expired_keys:%lld\r\n"
"expired_keys:%lld\r\n"
"evicted_keys:%lld\r\n"
"keyspace_hits:%lld\r\n"
"keyspace_hits:%lld\r\n"
"keyspace_misses:%lld\r\n"
"keyspace_misses:%lld\r\n"
"hash_max_zipmap_entries:%zu\r\n"
"hash_max_zipmap_entries:%zu\r\n"
...
@@ -1219,6 +1221,7 @@ sds genRedisInfoString(void) {
...
@@ -1219,6 +1221,7 @@ sds genRedisInfoString(void) {
server.stat_numconnections,
server.stat_numconnections,
server.stat_numcommands,
server.stat_numcommands,
server.stat_expiredkeys,
server.stat_expiredkeys,
server.stat_evictedkeys,
server.stat_keyspace_hits,
server.stat_keyspace_hits,
server.stat_keyspace_misses,
server.stat_keyspace_misses,
server.hash_max_zipmap_entries,
server.hash_max_zipmap_entries,
...
@@ -1436,44 +1439,13 @@ void freeMemoryIfNeeded(void) {
...
@@ -1436,44 +1439,13 @@ void freeMemoryIfNeeded(void) {
if (bestkey) {
if (bestkey) {
robj *keyobj = createStringObject(bestkey,sdslen(bestkey));
robj *keyobj = createStringObject(bestkey,sdslen(bestkey));
dbDelete(db,keyobj);
dbDelete(db,keyobj);
server.stat_e
xpir
edkeys++;
server.stat_e
vict
edkeys++;
decrRefCount(keyobj);
decrRefCount(keyobj);
freed++;
freed++;
}
}
}
}
if (!freed) return; /* nothing to free... */
if (!freed) return; /* nothing to free... */
}
}
while(0) {
int j, k, freed = 0;
for (j = 0; j < server.dbnum; j++) {
int minttl = -1;
sds minkey = NULL;
robj *keyobj = NULL;
struct dictEntry *de;
if (dictSize(server.db[j].expires)) {
freed = 1;
/* From a sample of three keys drop the one nearest to
* the natural expire */
for (k = 0; k < 3; k++) {
time_t t;
de = dictGetRandomKey(server.db[j].expires);
t = (time_t) dictGetEntryVal(de);
if (minttl == -1 || t < minttl) {
minkey = dictGetEntryKey(de);
minttl = t;
}
}
keyobj = createStringObject(minkey,sdslen(minkey));
dbDelete(server.db+j,keyobj);
server.stat_expiredkeys++;
decrRefCount(keyobj);
}
}
if (!freed) return; /* nothing to free... */
}
}
}
/* =================================== Main! ================================ */
/* =================================== Main! ================================ */
...
...
src/redis.h
View file @
d841dedb
...
@@ -387,6 +387,7 @@ struct redisServer {
...
@@ -387,6 +387,7 @@ struct redisServer {
long
long
stat_numcommands
;
/* number of processed commands */
long
long
stat_numcommands
;
/* number of processed commands */
long
long
stat_numconnections
;
/* number of connections received */
long
long
stat_numconnections
;
/* number of connections received */
long
long
stat_expiredkeys
;
/* number of expired keys */
long
long
stat_expiredkeys
;
/* number of expired keys */
long
long
stat_evictedkeys
;
/* number of evicted keys (maxmemory) */
long
long
stat_keyspace_hits
;
/* number of successful lookups of keys */
long
long
stat_keyspace_hits
;
/* number of successful lookups of keys */
long
long
stat_keyspace_misses
;
/* number of failed lookups of keys */
long
long
stat_keyspace_misses
;
/* number of failed lookups of keys */
/* Configuration */
/* Configuration */
...
...
src/t_string.c
View file @
d841dedb
...
@@ -346,14 +346,19 @@ void msetnxCommand(redisClient *c) {
...
@@ -346,14 +346,19 @@ void msetnxCommand(redisClient *c) {
}
}
void
incrDecrCommand
(
redisClient
*
c
,
long
long
incr
)
{
void
incrDecrCommand
(
redisClient
*
c
,
long
long
incr
)
{
long
long
value
;
long
long
value
,
oldvalue
;
robj
*
o
;
robj
*
o
;
o
=
lookupKeyWrite
(
c
->
db
,
c
->
argv
[
1
]);
o
=
lookupKeyWrite
(
c
->
db
,
c
->
argv
[
1
]);
if
(
o
!=
NULL
&&
checkType
(
c
,
o
,
REDIS_STRING
))
return
;
if
(
o
!=
NULL
&&
checkType
(
c
,
o
,
REDIS_STRING
))
return
;
if
(
getLongLongFromObjectOrReply
(
c
,
o
,
&
value
,
NULL
)
!=
REDIS_OK
)
return
;
if
(
getLongLongFromObjectOrReply
(
c
,
o
,
&
value
,
NULL
)
!=
REDIS_OK
)
return
;
oldvalue
=
value
;
value
+=
incr
;
value
+=
incr
;
if
((
incr
<
0
&&
value
>
oldvalue
)
||
(
incr
>
0
&&
value
<
oldvalue
))
{
addReplyError
(
c
,
"increment or decrement would overflow"
);
return
;
}
o
=
createStringObjectFromLongLong
(
value
);
o
=
createStringObjectFromLongLong
(
value
);
dbReplace
(
c
->
db
,
c
->
argv
[
1
],
o
);
dbReplace
(
c
->
db
,
c
->
argv
[
1
],
o
);
touchWatchedKey
(
c
->
db
,
c
->
argv
[
1
]);
touchWatchedKey
(
c
->
db
,
c
->
argv
[
1
]);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment