RocksDB存儲在默認列族

使用RocksDB需要導入如下maven:

        <dependency>
            <groupId>org.rocksdb</groupId>
            <artifactId>rocksdbjni</artifactId>
            <version>5.9.2</version>
        </dependency>

程序示例:

import org.rocksdb.Options;
import org.rocksdb.RocksDB;
import org.rocksdb.RocksDBException;
import org.rocksdb.RocksIterator;

public class TestRocksdb {

    //參數數據庫存儲位置
    public TestRocksdb(String dbPath){
        rocksDB=createRocksDB(dbPath);
    }

    //RocksDB引用
    public static RocksDB rocksDB;
    //加載RocksDB引擎
    static{
        RocksDB.loadLibrary();
    }

    public static RocksDB createRocksDB(String dbPath){
        try {
            //RocksDB初始化設置
            Options options=new Options();
            //如果本地文件失蹤則創建
            options.setCreateIfMissing(true);
            //創建RocksDB對象
            rocksDB=RocksDB.open(options,dbPath);
            return rocksDB;
        } catch (RocksDBException e) {
            e.printStackTrace();
            return null;
        }
    }



    public boolean put(byte[] key,byte[] value ){
        try {
            rocksDB.put(key,value);
            return true;
        } catch (RocksDBException e) {
            e.printStackTrace();
            return  false;
        }
    }


    public byte[] get(byte[] key){
        try {
            byte[] value=rocksDB.get(key);
            return value;
        } catch (RocksDBException e) {
            e.printStackTrace();
            return null;
        }
    }


    public void showAll(){
        RocksIterator iter = rocksDB.newIterator();
        for(iter.seekToFirst(); iter.isValid(); iter.next()) {
            byte[] key=iter.key();
            byte[] value=iter.value();
            System.out.println("key="+new String(key)+"; value="+new String(value));
        }
    }

    public static void main(String[] args) {
        TestRocksdb rocksdb=new TestRocksdb("/test");
        //要存放的數據key=key1,value="hello world"
        boolean flag=rocksdb.put("key1".getBytes(),"hello world".getBytes());
        if(flag==true){
            System.out.println("存儲成功");
        }else{
            System.out.println("存儲失敗");
        }
        //從數據庫中獲取數據
        byte[] bytes=rocksdb.get("key1".getBytes());
        System.out.println(new String(bytes));
    }
}

結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章