From 121f70cfae583582f88b9623e640a59c7a7630a4 Mon Sep 17 00:00:00 2001 From: antirez Date: Wed, 16 Dec 2009 11:28:41 -0500 Subject: [PATCH] lzf compression switched off by default now, with config file option to enable it in redis.conf --- redis.c | 8 +++++++- redis.conf | 42 +++++++++++++++++++++++++----------------- 2 files changed, 32 insertions(+), 18 deletions(-) diff --git a/redis.c b/redis.c index cadba369..40441228 100644 --- a/redis.c +++ b/redis.c @@ -301,6 +301,7 @@ struct redisServer { char *appendfilename; char *requirepass; int shareobjects; + int rdbcompression; /* Replication related */ int isslave; char *masterauth; @@ -1141,6 +1142,7 @@ static void initServerConfig() { server.appendfilename = "appendonly.aof"; server.requirepass = NULL; server.shareobjects = 0; + server.rdbcompression = 0; server.sharingpoolsize = 1024; server.maxclients = 0; server.maxmemory = 0; @@ -1341,6 +1343,10 @@ static void loadServerConfig(char *filename) { if ((server.shareobjects = yesnotoi(argv[1])) == -1) { err = "argument must be 'yes' or 'no'"; goto loaderr; } + } else if (!strcasecmp(argv[0],"rdbcompression") && argc == 2) { + if ((server.rdbcompression = yesnotoi(argv[1])) == -1) { + err = "argument must be 'yes' or 'no'"; goto loaderr; + } } else if (!strcasecmp(argv[0],"shareobjectspoolsize") && argc == 2) { server.sharingpoolsize = atoi(argv[1]); if (server.sharingpoolsize < 1) { @@ -2488,7 +2494,7 @@ static int rdbSaveStringObjectRaw(FILE *fp, robj *obj) { /* Try LZF compression - under 20 bytes it's unable to compress even * aaaaaaaaaaaaaaaaaa so skip it */ - if (len > 20) { + if (server.rdbcompression && len > 20) { int retval; retval = rdbSaveLzfStringObject(fp,obj); diff --git a/redis.conf b/redis.conf index 90f1b7b6..099a00a2 100644 --- a/redis.conf +++ b/redis.conf @@ -19,6 +19,25 @@ port 6379 # Close the connection after a client is idle for N seconds (0 to disable) timeout 300 +# Set server verbosity to 'debug' +# it can be one of: +# debug (a lot of information, useful for development/testing) +# notice (moderately verbose, what you want in production probably) +# warning (only very important / critical messages are logged) +loglevel debug + +# Specify the log file name. Also 'stdout' can be used to force +# the demon to log on the standard output. Note that if you use standard +# output for logging but daemonize, logs will be sent to /dev/null +logfile stdout + +# Set the number of databases. The default database is DB 0, you can select +# a different one on a per-connection basis using SELECT where +# dbid is a number between 0 and 'databases'-1 +databases 16 + +################################ SNAPSHOTTING ################################# +# # Save the DB on disk: # # save @@ -34,6 +53,12 @@ save 900 1 save 300 10 save 60 10000 +# Compress string objects using LZF when dump .rdb databases? +# For default that's set to 'no' because uses too much CPU time. +# You want to switch this to 'yes' only if you have a lot of very compressible +# data inside your dataset and are using replication. +rdbcompression no + # The filename where to dump the DB dbfilename dump.rdb @@ -41,23 +66,6 @@ dbfilename dump.rdb # Note that you must specify a directory not a file name. dir ./ -# Set server verbosity to 'debug' -# it can be one of: -# debug (a lot of information, useful for development/testing) -# notice (moderately verbose, what you want in production probably) -# warning (only very important / critical messages are logged) -loglevel debug - -# Specify the log file name. Also 'stdout' can be used to force -# the demon to log on the standard output. Note that if you use standard -# output for logging but daemonize, logs will be sent to /dev/null -logfile stdout - -# Set the number of databases. The default database is DB 0, you can select -# a different one on a per-connection basis using SELECT where -# dbid is a number between 0 and 'databases'-1 -databases 16 - ################################# REPLICATION ################################# # Master-Slave replication. Use slaveof to make a Redis instance a copy of -- 2.45.2