RocksDB: как использовать TTL в Java? - PullRequest
0 голосов
/ 20 ноября 2018

Я тестирую rockdb для Java API. Я помещаю запись значения ключа в карту, и затем жду 20 с, затем получаю от карты. Почему запись не удалена? это мой код:

import org.rocksdb.Options;
import org.rocksdb.RocksDBException;
import org.rocksdb.TtlDB;

public class Test2 {
    public static void main(String[] args) throws Exception {
        TtlDB.loadLibrary();
        Options options = new Options()
                .setCreateIfMissing(true);


        TtlDB db = TtlDB.open(options, args[0],20,false);
        if(args.length > 3 && "put".equals(args[1])) {
            db.put(args[2].getBytes(), args[3].getBytes());
        }

        byte[] arr = db.get(args[2].getBytes());
        if(arr != null) {
            System.out.println(new String(arr));
        } else {
            System.out.println(arr);
        }
        System.out.println(db.get(args[2].getBytes()));
        Thread.sleep(21000);
        System.out.println(db.get(args[2].getBytes()));
        db.close();
    }
}

1 Ответ

0 голосов
/ 10 декабря 2018

Истекшие значения TTL удаляются только при сжатии: (Timestamp + ttl

...