redis如何控制AOF大小

深圳gg發表於2018-09-26

隨著命令不斷寫入AOF,檔案會越來越大,為了解決這個問題,redis引入了AOF重寫機制壓縮檔案。檔案能縮小的原因是:
1.舊檔案中的無效命令不會保留,如del key1,sort。
2.多條合併成一條,如lplush list a,lplush list b轉換為lplush a b,也可以合併重複項。
AOF重寫可以手動觸發和自動觸發:
1.手動觸發可以呼叫bgrewriteaof。
2.根據如下兩個引數自動觸發。
redis.conf
#代表當前AOF檔案空間和上次重寫後AOF空間的比值。
auto-aof-rewrite-percentage 100
#AOP超過10m就開始收縮
auto-aof-rewrite-min-size 10mb

下面來做一個實驗,觀察appendonly.aof檔案,超過10m之後就開始收縮,不斷迴圈。
import redis.clients.jedis.Jedis;
public class TestRedisAOF {
public static void main(String args[]){
Jedis jedis = new Jedis(“127.0.0.1”, 6379);
int i=0;
while(i<100000000) {
jedis.set(“jedis”,“abcdefghijkabcdefghijkabcdefghijkabcdefghijkabcdefghijk”);
i++;
}
}
}

相關文章