5

我有rocksDB java实现,我想只在内存中存储数据而不把它写在硬盘上。我想我可以在创建 RocksDB 时使用选项来做到这一点。我试图使这里写的内容相同:https ://github.com/facebook/rocksdb/wiki/RocksDB-Tuning-Guide在“具有完整功能的内存数据库”部分中,但我不能完全相同,因为它是关于c++ 实现和 Java 要么没有某些属性,要么它们不可编辑。

Options options = new Options()
options.setCreateIfMissing(true);
BlockBasedTableConfig tableOptions = new BlockBasedTableConfig();
tableOptions.setNoBlockCache(true);
tableOptions.setBlockRestartInterval(4);
options.setTableFormatConfig(tableOptions);
options.setCompressionType(CompressionType.NO_COMPRESSION);
options.setMaxOpenFiles(-1);
try {
    final Path dbPath = getDbPath();
    if (!Files.isSymbolicLink(dbPath.getParent())) {
        Files.createDirectories(dbPath.getParent());
    }
    try {
        database = org.rocksdb.RocksDB.open(options, dbPath.toString());
    } catch (RocksDBException e) {
        logger.error(e.getMessage(), e);
    }

    alive = true;

} catch (IOException ioe) {
    logger.error(ioe.getMessage(), ioe);
}
4

0 回答 0