以太坊数据库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 showAllData(){
        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));
    }
}

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值