Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
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
Hide 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