我有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);
}