pom.xml引入相关依赖
<dependency>
<groupId>org.rocksdb</groupId>
<artifactId>rocksdbjni</artifactId>
<version>6.11.4</version>
</dependency>
yml配置RocksDB数据库位置
rocksDB:
path: D:\RocksDBData
配置类实例化RocksDB
import org.rocksdb.Options;
import org.rocksdb.RocksDB;
import org.rocksdb.RocksDBException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableAutoConfiguration
public class MyRocksDB {
@Value("${rocksDB.path}")
private String rocksDBDataPath;
@Bean
public RocksDB getRocksDB() {
try {
RocksDB.loadLibrary();
Options options = new Options();
options.setCreateIfMissing(true);
return RocksDB.open(options, rocksDBDataPath);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
RocksDB操作接口
import com.alibaba.fastjson.JSONObject;
import java.util.Map;
public interface MyRocksDbService {
void save(Map<String, Object> data);
JSONObject get(String key);
}
RocksDB操作实现类
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.icreate.esb.service.MyRocksDbService;
import org.rocksdb.RocksDB;
import org.rocksdb.RocksDBException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
@Service("/myRocksDbService")
public class MyRocksDbServiceImpl implements MyRocksDbService {
@Autowired
private RocksDB rocksDB;
@Override
public void save(Map<String, Object> data) {
try {
rocksDB.put(((String)data.get("rocksDbKey")).getBytes(), JSON.toJSONString(data).getBytes());
} catch (RocksDBException e) {
e.printStackTrace();
}
}
@Override
public JSONObject get(String key) {
try {
byte[] value = rocksDB.get(key.getBytes());
return JSON.parseObject(new String(value));
} catch (RocksDBException e) {
e.printStackTrace();
}
return null;
}
}