mirror of
https://github.com/fluencelabs/redis
synced 2025-04-08 18:38:04 +00:00
maxmemory-samples implemented in CONFIG command and configuration file
This commit is contained in:
parent
670bf2fd36
commit
a36879293d
@ -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-samples 3
|
||||||
|
|
||||||
############################## APPEND ONLY MODE ###############################
|
############################## APPEND ONLY MODE ###############################
|
||||||
|
|
||||||
|
25
src/config.c
25
src/config.c
@ -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) {
|
|||||||
} 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) {
|
|||||||
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) {
|
|||||||
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) {
|
|||||||
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++;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user