Permalink
Browse files

lzf compression switched off by default now, with config file option …

…to enable it in redis.conf
  • Loading branch information...
1 parent 483049a commit 121f70cfae583582f88b9623e640a59c7a7630a4 @antirez committed Dec 16, 2009
Showing with 32 additions and 18 deletions.
  1. +7 −1 redis.c
  2. +25 −17 redis.conf
View
8 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);
View
42 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 <dbid> where
+# dbid is a number between 0 and 'databases'-1
+databases 16
+
+################################ SNAPSHOTTING #################################
+#
# Save the DB on disk:
#
# save <seconds> <changes>
@@ -34,30 +53,19 @@ 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
# For default save/load DB in/from the working directory
# 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 <dbid> 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

0 comments on commit 121f70c

Please sign in to comment.