提交 3862529a 编写于 作者: R Robey Pointer

add memory_pressure_selection config.

上级 79fda18d
......@@ -123,6 +123,8 @@ void loadServerConfig(char *filename) {
server.maxclients = atoi(argv[1]);
} else if (!strcasecmp(argv[0],"maxmemory") && argc == 2) {
server.maxmemory = memtoll(argv[1],NULL);
} else if (!strcasecmp(argv[0],"memory_pressure_selection") && argc == 2) {
server.memory_pressure_selection = atoi(argv[1]);
} else if (!strcasecmp(argv[0],"slaveof") && argc == 3) {
server.masterhost = sdsnew(argv[1]);
server.masterport = atoi(argv[2]);
......
......@@ -733,6 +733,7 @@ void initServerConfig() {
server.maxclients = 0;
server.blpop_blocked_clients = 0;
server.maxmemory = 0;
server.memory_pressure_selection = 3;
server.vm_enabled = 0;
server.vm_swap_file = zstrdup("/tmp/redis-%p.vm");
server.vm_page_size = 256; /* 256 bytes per page */
......@@ -1328,7 +1329,7 @@ void freeMemoryIfNeeded(void) {
freed = 1;
/* From a sample of three keys drop the one nearest to
* the natural expire */
for (k = 0; k < 3; k++) {
for (k = 0; k < server.memory_pressure_selection; k++) {
time_t t;
de = dictGetRandomKey(server.db[j].expires);
......
......@@ -381,6 +381,7 @@ struct redisServer {
int replstate;
unsigned int maxclients;
unsigned long long maxmemory;
int memory_pressure_selection; /* # of candidates to choose from in freeMemoryIfNeeded(). */
unsigned int blpop_blocked_clients;
unsigned int vm_blocked_clients;
/* Sort parameters - qsort_r() is only available under BSD so we
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册