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