首页 > 其他分享 >RocksDB存储简单使用

RocksDB存储简单使用

时间:2023-09-18 22:11:10浏览次数:418  
标签:存储 RocksDB name rocksDb value rocksdb static 简单

简介

rocksDB 是一个可嵌入的,持久性的 key-value存储。基于Google的LevelDB,但提高了扩展性可以运行在多核处理器上,可以有效使用快速存储,支持IO绑定、内存和一次写负荷。

  1. 高性能:RocksDB使用一套日志结构的数据库引擎,为了更好的性能,这套引擎是用C++编写的。 Key和value是任意大小的字节流。
  2. 为快速存储而优化:RocksDB为快速而又低延迟的存储设备(例如闪存或者高速硬盘)而特殊优化处理。 RocksDB将最大限度的发挥闪存和RAM的高度率读写性能。
  3. 可适配性:RocksDB适合于多种不同工作量类型。从像MyRocks这样的数据存储引擎,到应用数据缓存,甚至是一些嵌入式工作量,RocksDB都可以从容面对这些不同的数据工作量需求。
  4. 基础和高级的数据库操作,RocksDB提供了一些基础的操作,例如打开和关闭数据库。对于合并和压缩过滤等高级操作,也提供了读写支持。

nacos 服务端实现依赖的 jraft 的底层存储就是使用的 rocksDB。

使用

<dependency>
    <groupId>org.rocksdb</groupId>
    <artifactId>rocksdbjni</artifactId>
    <version>7.7.3</version>
</dependency>
import org.rocksdb.Options;
import org.rocksdb.RocksDB;

/**
 * 测试RocksDB使用,不能同时创建两个RocksDB关联同一个目录文件,不然抛异常
 * org.rocksdb.RocksDBException: Failed to create lock file: C:/D-myfiles/testjar/rocksdb/LOCK
 */
public class TestRocksDbClient {

    private static final String DATA_PATH = "C:/D-myfiles/testjar/rocksdb";

    static {
        RocksDB.loadLibrary();
    }

    public static void main(String[] args) throws Exception {
//        testPut();
//        testGet();
        testDelete();
    }

    private static void testGet() throws Exception {
        RocksDB rocksDb = createRocksDb();
        byte[] value = rocksDb.get("name".getBytes());
        System.out.println(new String(value));
    }

    private static void testDelete() throws Exception {
        RocksDB rocksDb = createRocksDb();
        rocksDb.delete("name".getBytes());
        byte[] value = rocksDb.get("name".getBytes());//null
        System.out.println(new String(value));
    }

    private static void testPut() throws Exception {
        RocksDB rocksDb = createRocksDb();
        rocksDb.put("name".getBytes(), "lisi".getBytes());
    }

    private static RocksDB createRocksDb() throws Exception {
        Options options = new Options();
        options.setCreateIfMissing(true);
        return RocksDB.open(options, DATA_PATH);
    }
}

和操作redis很类似

遇到问题

Cannot determine JNI library name for ARCH='x86' OS='windows 8.1' name='rocksdb'

原因:安装的jdk是32位的,重新安装64位的jdk

Can't load AMD 64-bit .dll on a IA 32-bit platform

原因:安装的jdk是32位的,重新安装64位的jdk

参考

Java RocksDB简单入门
RocksDB:不丢数据的高性能 KV 存储

标签:存储,RocksDB,name,rocksDb,value,rocksdb,static,简单
From: https://www.cnblogs.com/strongmore/p/17316695.html

相关文章

  • Spring框架中 依赖注入和控制反转,最简单、最通俗的解释! 再加上一个AOP
    首先依赖注入==控制反转,只不过控制反转这个词汇,让人产生了错误的理解,才使用新的词汇:依赖注入来替换到这个词汇。“依赖注入”是指一个对象应用另外一个对象来提供一个特殊的能力。例如,把一个数据库连接以参数的形式传到一个对象的结构方法里,而不是在那个对象内部自行创......
  • 2.MySQL存储引擎
    MySQL有Server层和存储引擎层,存储引擎层为插件式实现,redolog为InnoDB独有。1.MySQL支持哪些存储引擎?默认使用哪个?所有的存储引擎中只有InnoDB是事务性存储引擎,也就是说只有InnoDB支持事务。 2.MySQL存储引擎架构了解吗?MySQL存储引擎采用的是插件式架构,支持......
  • Springboot简单功能示例-5 使用JWT进行授权认证
    springboot-sample介绍springboot简单示例-使用JWT进行授权认证跳转到发行版查看发行版说明软件架构(当前发行版)Springboot3.1.3hutoolbcprov-jdk18on安装教程gitclone--branch自定义加密进行登录验证[email protected]:simen_net/springboot-sample.git主要功......
  • 2.简单的搭建后端,一步一步从基础开始
    上传Git的忽略文件下载千万不能忘记配置忽略文件,不然可能会搞得你一个项目10多个G,很烦人先梳理下我们需要新建的项目如下。接口层一般I(i)开头,实现层不需要。后面还会增加扩展类或者其他的。API程序层:FastEasyAPI服务接口层:IFastEasy.Service服务实现层:FastEasy.Service仓......
  • Go比Python快多少倍?请看一个简单的例子
    需求两个0-10000的数组,循环遍历两个数组,获取两个元素,打印出乘积为56213的所有元素Python实现importdatetimes=datetime.datetime.now()foriinrange(10000):forjinrange(10000):ifi*j==56213:print(f"{i}*{......
  • 视频汇聚/视频云存储/视频监控管理平台EasyCVR分发rtsp流起播慢优化步骤详解
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,也具备接入AI智能分析的......
  • 在EasyGBS数据库中怎么样存储视频,有哪些方式储存视频
    EasyGBS平台是一款安防视频监控/视频集中存储/云存储/磁盘阵列平台,具有强大的可拓展性和灵活的视频能力,轻便易部署。该平台支持国标GB28181、RTSP/Onvif、RTMP等主流标准协议,以及海康Ehome、海大宇等设备的SDK接入。有两种方法:1、在数据库中建立相关表保存视图的相对路径即可调......
  • 全面了解关于EasyGBS高效存储的五种不同解读
    EasyGBS平台是一款安防视频监控/视频集中存储/云存储/磁盘阵列平台,具有强大的可拓展性和灵活的视频能力,轻便易部署。该平台支持国标GB28181、RTSP/Onvif、RTMP等主流标准协议,以及海康Ehome、海大宇等设备的SDK接入。除了传统安防视频监控外,该平台还具备接入AI智能分析的能力,并能对......
  • 视频汇聚/视频云存储/视频监控管理平台EasyCVR分发rtsp流起播慢优化步骤详解
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,也具备接入AI智能分析的......
  • 科技云报道:分布式存储红海中,看天翼云HBlock如何突围?
    科技云报道原创。过去十年,随着技术的颠覆性创新和新应用场景的大量涌现,企业IT架构出现了稳态和敏态的混合化趋势。在持续产生海量数据的同时,这些新应用、新场景在基础设施层也普遍基于敏态的分布式架构构建,从而对存储技术提出了新的要求。正因如此,分布式存储凭借高安全性、可靠性、......