mirror of
https://github.com/fluencelabs/redis
synced 2025-03-19 17:10:50 +00:00
BGREWRITEAOF now works with swapping on
This commit is contained in:
parent
1b03836c0e
commit
e7546c6393
23
redis.c
23
redis.c
@ -6527,9 +6527,20 @@ static int rewriteAppendOnlyFile(char *filename) {
|
|||||||
|
|
||||||
/* Iterate this DB writing every entry */
|
/* Iterate this DB writing every entry */
|
||||||
while((de = dictNext(di)) != NULL) {
|
while((de = dictNext(di)) != NULL) {
|
||||||
robj *key = dictGetEntryKey(de);
|
robj *key, *o;
|
||||||
robj *o = dictGetEntryVal(de);
|
time_t expiretime;
|
||||||
time_t expiretime = getExpire(db,key);
|
int swapped;
|
||||||
|
|
||||||
|
key = dictGetEntryKey(de);
|
||||||
|
if (key->storage == REDIS_VM_MEMORY) {
|
||||||
|
o = dictGetEntryVal(de);
|
||||||
|
swapped = 0;
|
||||||
|
} else {
|
||||||
|
o = vmPreviewObject(key);
|
||||||
|
key = dupStringObject(key);
|
||||||
|
swapped = 1;
|
||||||
|
}
|
||||||
|
expiretime = getExpire(db,key);
|
||||||
|
|
||||||
/* Save the key and associated value */
|
/* Save the key and associated value */
|
||||||
if (o->type == REDIS_STRING) {
|
if (o->type == REDIS_STRING) {
|
||||||
@ -6597,6 +6608,12 @@ static int rewriteAppendOnlyFile(char *filename) {
|
|||||||
if (fwriteBulk(fp,key) == 0) goto werr;
|
if (fwriteBulk(fp,key) == 0) goto werr;
|
||||||
if (fwriteBulkLong(fp,expiretime) == 0) goto werr;
|
if (fwriteBulkLong(fp,expiretime) == 0) goto werr;
|
||||||
}
|
}
|
||||||
|
/* We created a few temp objects if the key->value pair
|
||||||
|
* was about a swapped out object. Free both. */
|
||||||
|
if (swapped) {
|
||||||
|
decrRefCount(key);
|
||||||
|
decrRefCount(o);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
dictReleaseIterator(di);
|
dictReleaseIterator(di);
|
||||||
}
|
}
|
||||||
|
@ -49,9 +49,12 @@ databases 16
|
|||||||
# after 900 sec (15 min) if at least 1 key changed
|
# after 900 sec (15 min) if at least 1 key changed
|
||||||
# after 300 sec (5 min) if at least 10 keys changed
|
# after 300 sec (5 min) if at least 10 keys changed
|
||||||
# after 60 sec if at least 10000 keys changed
|
# after 60 sec if at least 10000 keys changed
|
||||||
save 900 1
|
#
|
||||||
save 300 10
|
# Note: you can disable saving at all commenting all the "save" lines.
|
||||||
save 60 10000
|
|
||||||
|
#save 900 1
|
||||||
|
#save 300 10
|
||||||
|
#save 60 10000
|
||||||
|
|
||||||
# Compress string objects using LZF when dump .rdb databases?
|
# Compress string objects using LZF when dump .rdb databases?
|
||||||
# For default that's set to 'yes' as it's almost always a win.
|
# For default that's set to 'yes' as it's almost always a win.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user