mirror of
https://github.com/fluencelabs/redis
synced 2025-04-08 02:18:04 +00:00
Configurable thresholds for encoded sorted sets
This commit is contained in:
parent
e12b27acf7
commit
3ea204e103
@ -340,6 +340,12 @@ list-max-ziplist-value 64
|
|||||||
# set in order to use this special memory saving encoding.
|
# set in order to use this special memory saving encoding.
|
||||||
set-max-intset-entries 512
|
set-max-intset-entries 512
|
||||||
|
|
||||||
|
# Similarly to hashes and lists, sorted sets are also specially encoded in
|
||||||
|
# order to save a lot of space. This encoding is only used when the length and
|
||||||
|
# elements of a sorted set are below the following limits:
|
||||||
|
zset-max-ziplist-entries 128
|
||||||
|
zset-max-ziplist-value 64
|
||||||
|
|
||||||
# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in
|
# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in
|
||||||
# order to help rehashing the main Redis hash table (the one mapping top-level
|
# order to help rehashing the main Redis hash table (the one mapping top-level
|
||||||
# keys to values). The hash table implementation redis uses (see dict.c)
|
# keys to values). The hash table implementation redis uses (see dict.c)
|
||||||
|
20
src/config.c
20
src/config.c
@ -261,6 +261,10 @@ void loadServerConfig(char *filename) {
|
|||||||
server.list_max_ziplist_value = memtoll(argv[1], NULL);
|
server.list_max_ziplist_value = memtoll(argv[1], NULL);
|
||||||
} else if (!strcasecmp(argv[0],"set-max-intset-entries") && argc == 2) {
|
} else if (!strcasecmp(argv[0],"set-max-intset-entries") && argc == 2) {
|
||||||
server.set_max_intset_entries = memtoll(argv[1], NULL);
|
server.set_max_intset_entries = memtoll(argv[1], NULL);
|
||||||
|
} else if (!strcasecmp(argv[0],"zset-max-ziplist-entries") && argc == 2) {
|
||||||
|
server.zset_max_ziplist_entries = memtoll(argv[1], NULL);
|
||||||
|
} else if (!strcasecmp(argv[0],"zset-max-ziplist-value") && argc == 2) {
|
||||||
|
server.zset_max_ziplist_value = memtoll(argv[1], NULL);
|
||||||
} else if (!strcasecmp(argv[0],"rename-command") && argc == 3) {
|
} else if (!strcasecmp(argv[0],"rename-command") && argc == 3) {
|
||||||
struct redisCommand *cmd = lookupCommand(argv[1]);
|
struct redisCommand *cmd = lookupCommand(argv[1]);
|
||||||
int retval;
|
int retval;
|
||||||
@ -443,6 +447,12 @@ void configSetCommand(redisClient *c) {
|
|||||||
} else if (!strcasecmp(c->argv[2]->ptr,"set-max-intset-entries")) {
|
} else if (!strcasecmp(c->argv[2]->ptr,"set-max-intset-entries")) {
|
||||||
if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 0) goto badfmt;
|
if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 0) goto badfmt;
|
||||||
server.set_max_intset_entries = ll;
|
server.set_max_intset_entries = ll;
|
||||||
|
} else if (!strcasecmp(c->argv[2]->ptr,"zset-max-ziplist-entries")) {
|
||||||
|
if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 0) goto badfmt;
|
||||||
|
server.zset_max_ziplist_entries = ll;
|
||||||
|
} else if (!strcasecmp(c->argv[2]->ptr,"zset-max-ziplist-value")) {
|
||||||
|
if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 0) goto badfmt;
|
||||||
|
server.zset_max_ziplist_value = ll;
|
||||||
} else {
|
} else {
|
||||||
addReplyErrorFormat(c,"Unsupported CONFIG parameter: %s",
|
addReplyErrorFormat(c,"Unsupported CONFIG parameter: %s",
|
||||||
(char*)c->argv[2]->ptr);
|
(char*)c->argv[2]->ptr);
|
||||||
@ -594,6 +604,16 @@ void configGetCommand(redisClient *c) {
|
|||||||
addReplyBulkLongLong(c,server.set_max_intset_entries);
|
addReplyBulkLongLong(c,server.set_max_intset_entries);
|
||||||
matches++;
|
matches++;
|
||||||
}
|
}
|
||||||
|
if (stringmatch(pattern,"zset-max-ziplist-entries",0)) {
|
||||||
|
addReplyBulkCString(c,"zset-max-ziplist-entries");
|
||||||
|
addReplyBulkLongLong(c,server.zset_max_ziplist_entries);
|
||||||
|
matches++;
|
||||||
|
}
|
||||||
|
if (stringmatch(pattern,"zset-max-ziplist-value",0)) {
|
||||||
|
addReplyBulkCString(c,"zset-max-ziplist-value");
|
||||||
|
addReplyBulkLongLong(c,server.zset_max_ziplist_value);
|
||||||
|
matches++;
|
||||||
|
}
|
||||||
setDeferredMultiBulkLength(c,replylen,matches*2);
|
setDeferredMultiBulkLength(c,replylen,matches*2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -821,6 +821,8 @@ void initServerConfig() {
|
|||||||
server.list_max_ziplist_entries = REDIS_LIST_MAX_ZIPLIST_ENTRIES;
|
server.list_max_ziplist_entries = REDIS_LIST_MAX_ZIPLIST_ENTRIES;
|
||||||
server.list_max_ziplist_value = REDIS_LIST_MAX_ZIPLIST_VALUE;
|
server.list_max_ziplist_value = REDIS_LIST_MAX_ZIPLIST_VALUE;
|
||||||
server.set_max_intset_entries = REDIS_SET_MAX_INTSET_ENTRIES;
|
server.set_max_intset_entries = REDIS_SET_MAX_INTSET_ENTRIES;
|
||||||
|
server.zset_max_ziplist_entries = REDIS_ZSET_MAX_ZIPLIST_ENTRIES;
|
||||||
|
server.zset_max_ziplist_value = REDIS_ZSET_MAX_ZIPLIST_VALUE;
|
||||||
server.shutdown_asap = 0;
|
server.shutdown_asap = 0;
|
||||||
server.cache_flush_delay = 0;
|
server.cache_flush_delay = 0;
|
||||||
|
|
||||||
|
@ -197,6 +197,8 @@
|
|||||||
#define REDIS_LIST_MAX_ZIPLIST_ENTRIES 512
|
#define REDIS_LIST_MAX_ZIPLIST_ENTRIES 512
|
||||||
#define REDIS_LIST_MAX_ZIPLIST_VALUE 64
|
#define REDIS_LIST_MAX_ZIPLIST_VALUE 64
|
||||||
#define REDIS_SET_MAX_INTSET_ENTRIES 512
|
#define REDIS_SET_MAX_INTSET_ENTRIES 512
|
||||||
|
#define REDIS_ZSET_MAX_ZIPLIST_ENTRIES 128
|
||||||
|
#define REDIS_ZSET_MAX_ZIPLIST_VALUE 64
|
||||||
|
|
||||||
/* Sets operations codes */
|
/* Sets operations codes */
|
||||||
#define REDIS_OP_UNION 0
|
#define REDIS_OP_UNION 0
|
||||||
@ -470,6 +472,8 @@ struct redisServer {
|
|||||||
size_t list_max_ziplist_entries;
|
size_t list_max_ziplist_entries;
|
||||||
size_t list_max_ziplist_value;
|
size_t list_max_ziplist_value;
|
||||||
size_t set_max_intset_entries;
|
size_t set_max_intset_entries;
|
||||||
|
size_t zset_max_ziplist_entries;
|
||||||
|
size_t zset_max_ziplist_value;
|
||||||
time_t unixtime; /* Unix time sampled every second. */
|
time_t unixtime; /* Unix time sampled every second. */
|
||||||
/* Virtual memory I/O threads stuff */
|
/* Virtual memory I/O threads stuff */
|
||||||
/* An I/O thread process an element taken from the io_jobs queue and
|
/* An I/O thread process an element taken from the io_jobs queue and
|
||||||
|
Loading…
x
Reference in New Issue
Block a user