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
a3687929
Commit
a3687929
authored
Oct 15, 2010
by
antirez
Browse files
maxmemory-samples implemented in CONFIG command and configuration file
parent
670bf2fd
Changes
2
Show whitespace changes
Inline
Side-by-side
redis.conf
View file @
a3687929
...
@@ -165,7 +165,7 @@ dir ./
...
@@ -165,7 +165,7 @@ dir ./
# pick the one that was used less recently, you can change the sample size
# pick the one that was used less recently, you can change the sample size
# using the following configuration directive.
# using the following configuration directive.
#
#
# maxmemory-sample 3
# maxmemory-sample
s
3
############################## APPEND ONLY MODE ###############################
############################## APPEND ONLY MODE ###############################
...
...
src/config.c
View file @
a3687929
...
@@ -138,6 +138,12 @@ void loadServerConfig(char *filename) {
...
@@ -138,6 +138,12 @@ void loadServerConfig(char *filename) {
err
=
"Invalid maxmemory policy"
;
err
=
"Invalid maxmemory policy"
;
goto
loaderr
;
goto
loaderr
;
}
}
}
else
if
(
!
strcasecmp
(
argv
[
0
],
"maxmemory-samples"
)
&&
argc
==
2
)
{
server
.
maxmemory_samples
=
atoi
(
argv
[
1
]);
if
(
server
.
maxmemory_samples
<=
0
)
{
err
=
"maxmemory-samples must be 1 or greater"
;
goto
loaderr
;
}
}
else
if
(
!
strcasecmp
(
argv
[
0
],
"slaveof"
)
&&
argc
==
3
)
{
}
else
if
(
!
strcasecmp
(
argv
[
0
],
"slaveof"
)
&&
argc
==
3
)
{
server
.
masterhost
=
sdsnew
(
argv
[
1
]);
server
.
masterhost
=
sdsnew
(
argv
[
1
]);
server
.
masterport
=
atoi
(
argv
[
2
]);
server
.
masterport
=
atoi
(
argv
[
2
]);
...
@@ -271,6 +277,10 @@ void configSetCommand(redisClient *c) {
...
@@ -271,6 +277,10 @@ void configSetCommand(redisClient *c) {
}
else
{
}
else
{
goto
badfmt
;
goto
badfmt
;
}
}
}
else
if
(
!
strcasecmp
(
c
->
argv
[
2
]
->
ptr
,
"maxmemory-samples"
))
{
if
(
getLongLongFromObject
(
o
,
&
ll
)
==
REDIS_ERR
||
ll
<=
0
)
goto
badfmt
;
server
.
maxmemory_samples
=
ll
;
}
else
if
(
!
strcasecmp
(
c
->
argv
[
2
]
->
ptr
,
"timeout"
))
{
}
else
if
(
!
strcasecmp
(
c
->
argv
[
2
]
->
ptr
,
"timeout"
))
{
if
(
getLongLongFromObject
(
o
,
&
ll
)
==
REDIS_ERR
||
if
(
getLongLongFromObject
(
o
,
&
ll
)
==
REDIS_ERR
||
ll
<
0
||
ll
>
LONG_MAX
)
goto
badfmt
;
ll
<
0
||
ll
>
LONG_MAX
)
goto
badfmt
;
...
@@ -362,6 +372,7 @@ void configGetCommand(redisClient *c) {
...
@@ -362,6 +372,7 @@ void configGetCommand(redisClient *c) {
robj
*
o
=
getDecodedObject
(
c
->
argv
[
2
]);
robj
*
o
=
getDecodedObject
(
c
->
argv
[
2
]);
void
*
replylen
=
addDeferredMultiBulkLength
(
c
);
void
*
replylen
=
addDeferredMultiBulkLength
(
c
);
char
*
pattern
=
o
->
ptr
;
char
*
pattern
=
o
->
ptr
;
char
buf
[
128
];
int
matches
=
0
;
int
matches
=
0
;
if
(
stringmatch
(
pattern
,
"dbfilename"
,
0
))
{
if
(
stringmatch
(
pattern
,
"dbfilename"
,
0
))
{
...
@@ -380,9 +391,7 @@ void configGetCommand(redisClient *c) {
...
@@ -380,9 +391,7 @@ void configGetCommand(redisClient *c) {
matches
++
;
matches
++
;
}
}
if
(
stringmatch
(
pattern
,
"maxmemory"
,
0
))
{
if
(
stringmatch
(
pattern
,
"maxmemory"
,
0
))
{
char
buf
[
128
];
ll2string
(
buf
,
sizeof
(
buf
),
server
.
maxmemory
);
ll2string
(
buf
,
128
,
server
.
maxmemory
);
addReplyBulkCString
(
c
,
"maxmemory"
);
addReplyBulkCString
(
c
,
"maxmemory"
);
addReplyBulkCString
(
c
,
buf
);
addReplyBulkCString
(
c
,
buf
);
matches
++
;
matches
++
;
...
@@ -402,10 +411,14 @@ void configGetCommand(redisClient *c) {
...
@@ -402,10 +411,14 @@ void configGetCommand(redisClient *c) {
addReplyBulkCString
(
c
,
s
);
addReplyBulkCString
(
c
,
s
);
matches
++
;
matches
++
;
}
}
if
(
stringmatch
(
pattern
,
"maxmemory-samples"
,
0
))
{
ll2string
(
buf
,
sizeof
(
buf
),
server
.
maxmemory_samples
);
addReplyBulkCString
(
c
,
"maxmemory-samples"
);
addReplyBulkCString
(
c
,
buf
);
matches
++
;
}
if
(
stringmatch
(
pattern
,
"timeout"
,
0
))
{
if
(
stringmatch
(
pattern
,
"timeout"
,
0
))
{
char
buf
[
128
];
ll2string
(
buf
,
sizeof
(
buf
),
server
.
maxidletime
);
ll2string
(
buf
,
128
,
server
.
maxidletime
);
addReplyBulkCString
(
c
,
"timeout"
);
addReplyBulkCString
(
c
,
"timeout"
);
addReplyBulkCString
(
c
,
buf
);
addReplyBulkCString
(
c
,
buf
);
matches
++
;
matches
++
;
...
...
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