Commit 121f70cf authored by antirez's avatar antirez
Browse files

lzf compression switched off by default now, with config file option to enable it in redis.conf

parent 483049a7
...@@ -301,6 +301,7 @@ struct redisServer { ...@@ -301,6 +301,7 @@ struct redisServer {
char *appendfilename; char *appendfilename;
char *requirepass; char *requirepass;
int shareobjects; int shareobjects;
int rdbcompression;
/* Replication related */ /* Replication related */
int isslave; int isslave;
char *masterauth; char *masterauth;
...@@ -1141,6 +1142,7 @@ static void initServerConfig() { ...@@ -1141,6 +1142,7 @@ static void initServerConfig() {
server.appendfilename = "appendonly.aof"; server.appendfilename = "appendonly.aof";
server.requirepass = NULL; server.requirepass = NULL;
server.shareobjects = 0; server.shareobjects = 0;
server.rdbcompression = 0;
server.sharingpoolsize = 1024; server.sharingpoolsize = 1024;
server.maxclients = 0; server.maxclients = 0;
server.maxmemory = 0; server.maxmemory = 0;
...@@ -1341,6 +1343,10 @@ static void loadServerConfig(char *filename) { ...@@ -1341,6 +1343,10 @@ static void loadServerConfig(char *filename) {
if ((server.shareobjects = yesnotoi(argv[1])) == -1) { if ((server.shareobjects = yesnotoi(argv[1])) == -1) {
err = "argument must be 'yes' or 'no'"; goto loaderr; 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) { } else if (!strcasecmp(argv[0],"shareobjectspoolsize") && argc == 2) {
server.sharingpoolsize = atoi(argv[1]); server.sharingpoolsize = atoi(argv[1]);
if (server.sharingpoolsize < 1) { if (server.sharingpoolsize < 1) {
...@@ -2488,7 +2494,7 @@ static int rdbSaveStringObjectRaw(FILE *fp, robj *obj) { ...@@ -2488,7 +2494,7 @@ static int rdbSaveStringObjectRaw(FILE *fp, robj *obj) {
/* Try LZF compression - under 20 bytes it's unable to compress even /* Try LZF compression - under 20 bytes it's unable to compress even
* aaaaaaaaaaaaaaaaaa so skip it */ * aaaaaaaaaaaaaaaaaa so skip it */
if (len > 20) { if (server.rdbcompression && len > 20) {
int retval; int retval;
retval = rdbSaveLzfStringObject(fp,obj); retval = rdbSaveLzfStringObject(fp,obj);
......
...@@ -19,6 +19,25 @@ port 6379 ...@@ -19,6 +19,25 @@ port 6379
# Close the connection after a client is idle for N seconds (0 to disable) # Close the connection after a client is idle for N seconds (0 to disable)
timeout 300 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 the DB on disk:
# #
# save <seconds> <changes> # save <seconds> <changes>
...@@ -34,6 +53,12 @@ save 900 1 ...@@ -34,6 +53,12 @@ save 900 1
save 300 10 save 300 10
save 60 10000 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 # The filename where to dump the DB
dbfilename dump.rdb dbfilename dump.rdb
...@@ -41,23 +66,6 @@ dbfilename dump.rdb ...@@ -41,23 +66,6 @@ dbfilename dump.rdb
# Note that you must specify a directory not a file name. # Note that you must specify a directory not a file name.
dir ./ 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 ################################# ################################# REPLICATION #################################
# Master-Slave replication. Use slaveof to make a Redis instance a copy of # Master-Slave replication. Use slaveof to make a Redis instance a copy of
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment