RocksDB 官方安装指南中文翻译版

RocksDB系列一:RocksDB基础和入门 1、简介       RocksDB是FaceBook起初作为实验性质开发的一个高效数据库软件,旨在充分实现快存上存储数据的服务能力。RocksDB是一个c++库,可以用来存储keys和values,且keys和values可以是任意的字节流,支持原子的读和写。除此外,RocksDB深度支持各种配置,可以在不同的生产环境(纯内存、Flash、hard disks or HDFS)中调优,支持不同的... 阅读详情
AI摘要

本文翻译了RocksDB的官方安装指南,包括编译方式、依赖库和支持的平台。推荐使用`make static_lib`或`make shared_lib`编译release模式的RocksDB,避免使用`make debug`。安装需要的依赖有zlib、bzip2、lz4、snappy和zstandard。支持的平台包括Linux(Ubuntu、CentOS/RHEL)、OS X、FreeBSD、OpenBSD、iOS和Windows。在不同平台上,文章提供了详细的安装步骤和注意事项。

RocksDB 官方安装指南:https://github.com/facebook/rocksdb/blob/master/INSTALL.md。

我只是简单做了一个翻译哈,换句话说,我不生产文档,我只是官方文档的翻译工。英语水平有限,有些句子意思大概明白,但是翻译过来就不一定准确,如果发现不太准确的地方,请及时指明。


编译方式

注意:如果你打算在生产环境中使用 RocksDB,请不要使用 make 或者是 make all 的方式进行编译。因为这两种方式会编译出 debug 模式的 RocksDB,性能要差很多。

RocksDB 正常是可以在不安装任何依赖的情况下编译的,但是我们推荐安装一些压缩库(见下文)。当然,新版本的 gcc/clang 还是需要的,因为使用到了 C++11 的特性。

以下是一些编译 RocksDB 的选择:

  • 【推荐】make static_lib 将会编译出一个 RocksDB 的静态库 librocksdb.a。这个静态库是 release 模式的。

  • make shared_lib 将会编译出一个 RocksDB 的动态库 librocksdb.so。这个动态库是 release 模式的。

  • make check 将会编译并运行所有的单元测试,得到的 RocksDB 是 debug 模式的。

  • make all 将会编译出一个静态库、所有的工具和单元测试。我们的工具依赖 gflags,所以在运行 make all 之前必须先安装 gflags。这种方式得到的 RocksDB 是 debug 模式的,不要在生产环境中使用 make all 编译出来的二进制包。

  • 默认情况下,我们编译的二进制包会针对你编译所在的平台进行优化(-march=native 或相同的东西),如果你的 CPU 支持 SSE4.2 指令集的话也会自动开启。当使用 USE_SSE=1 make static_lib 或者 cmake -DFORCE_SSE42=ON 去编译,且 CPU 还不支持 SSE4.2 指令集的话,就会显示一条警告信息。如果你想要一个便捷式的二进制包,就在 make 命令前添加 PORTABLE=1,比如说 PORTABLE=1 make static_lib。

需要的依赖

  • 你可以让 RocksDB 去链接以下的压缩库:

    • zlib - 一个用于数据压缩的库。
    • bzip2 - 一个用于数据压缩的库。
    • lz4 - 一个用于数据极速压缩的库。
    • snappy - 一个用于数据快速压缩的库。
    • zstandard - 快速实时压缩算法。
  • 所有我们的工具都依赖于:

    • gflags - 一个命令行标志解析库。你可以在不安装这个库的情况下正常编译 RocksDB。
  • 如果你希望构建 RocksJava 静态包,那么用于编译 Snappy 的 cmake 是必须的。

支持的平台

  • Linux - Ubuntu

    • 更新 gcc 的版本到 4.8 或更高以获得 C++11 的特性。
    • 安装 gflags。首先尝试:sudo apt-get install libgflags-dev,如果不管用,而且你用的是 Ubuntu,这里有一份非常赞的指南:(http://askubuntu.com/questions/312173/installing-gflags-12-04)。
    • 安装 snappy。通常这一步很简单:sudo apt-get install libsnappy-dev。
    • 安装 zlib。尝试:sudo apt-get install zlib1g-dev。
    • 安装 bzip2:sudo apt-get install libbz2-dev。
    • 安装 lz4:sudo apt-get install liblz4-dev。
    • 安装 zstandard:sudo apt-get install libzstd-dev。
  • Linux - CentOS / RHEL

    • 更新 gcc 的版本到 4.8 或更高以获得 C++11 的特性:yum install gcc48-c++。

    • 安装 gflags:

          git clone https://github.com/gflags/gflags.git
          cd gflags
          git checkout v2.0
          ./configure && make && sudo make install
      

      **注意:**一旦安装完成,请把 gflags 的头文件路径添加到环境变量 CPATH 中,还要把库文件路径添加到 LIBRARY_PATH。如果使用默认的设置进行安装,头文件路径就是 /usr/local/include,库文件路径就是 /usr/local/lib。

    • 安装 snappy:

          sudo yum install snappy snappy-devel
      
    • 安装 zlib:

          sudo yum install zlib zlib-devel
      
    • 安装 bzip2:

          sudo yum install bzip2 bzip2-devel
      
    • 安装 lz4:

          sudo yum install lz4-devel
      
    • 安装 ASAN (调试的可选项):

          sudo yum install libasan
      
    • 安装 zstandard:

          wget https://github.com/facebook/zstd/archive/v1.1.3.tar.gz
          mv v1.1.3.tar.gz zstd-1.1.3.tar.gz
          tar zxvf zstd-1.1.3.tar.gz
          cd zstd-1.1.3
          make && sudo make install
      
  • OS X

    • 安装支持 C++11 特性的 C++ 编译器:
      • 更新 XCode:运行 xcode-select --install(或者通过 XCode 的应用设置去安装)。
      • 通过 homebrew 去安装。
        • 如果你是第一次在 MacOS 上做开发,那还是需要在命令行中运行 xcode-select --install。
        • 运行 brew tap homebrew/versions; brew install gcc48 --use-llvm 去安装 4.8 或更高版本的 gcc。
  • 运行 brew install rocksdb。

  • FreeBSD (11.01)

    • 你可以通过 Ports 系统去安装 RocksDB(cd /usr/ports/databases/rocksdb && make install),也可以根据下面的详细操作安装依赖,然后使用源码编译安装:

      • 安装 RocksDB 的依赖:

            export BATCH=YES
            cd /usr/ports/devel/gmake && make install
            cd /usr/ports/devel/gflags && make install
        
            cd /usr/ports/archivers/snappy && make install
            cd /usr/ports/archivers/bzip2 && make install
            cd /usr/ports/archivers/liblz4 && make install
            cd /usr/ports/archivesrs/zstd && make install
        
            cd /usr/ports/devel/git && make install
        
      • 安装 RocksJava 的依赖(可选):

            export BATCH=yes
            cd /usr/ports/java/openjdk7 && make install
        
      • 从源码构建 RocksDB:

            cd ~
            git clone https://github.com/facebook/rocksdb.git
            cd rocksdb
            gmake static_lib
        
      • 从源码构建 RocksJava(可选):

            cd rocksdb
            export JAVA_HOME=/usr/local/openjdk7
            gmake rocksdbjava
        
  • OpenBSD (6.3 及以上)

    • 由于目前 RocksDB 还不能使用 ports 去构建,所以你只能自己构建了:

      • 安装 RocksDB 的依赖:

            pkg_add gmake gflags snappy bzip2 lz4 zstd git jdk bash findutils gnuwatch
        
      • 使用源码构建 RocksDB:

            cd ~
            git clone https://github.com/facebook/rocksdb.git
            cd rocksdb
            gmake static_lib
        
    • 使用源码构建 RocksJava(可选):

          cd rocksdb
          export JAVA_HOME=/usr/local/jdk-1.8.0
          export PATH=$PATH:/usr/local/jdk-1.8.0/bin
          gmake rocksdbjava
      
  • iOS

    • 运行:TARGET_OS=IOS make static_lib。如果项目中使用了这个 IOS 版的 RocksDB 库,需要确保 ROCKSDB_LITE 和 IOS_CROSS_COMPILE 两个宏指令已经定义好了。
  • Windows

    • 为了在 MS Visual Studio 13 上进行编译,你需要更新 4 个安装包。
    • 参考 CMakeLists.txt 中的指南进行操作。
    • 或者通过 vcpkg 进行安装。
      • 运行 vcpkg install rocksdb:x64-windows。
  • AIX 6.1

    • 使用 gcc 安装 AIX 工具箱。

    • 添加以下的环境变量:

          export PORTABLE=1
          export CC=gcc
          export AR="ar -X64"
          export EXTRA_ARFLAGS=-X64
          export EXTRA_CFLAGS=-maix64
          export EXTRA_CXXFLAGS=-maix64
          export PLATFORM_LDFLAGS="-static-libstdc++ -static-libgcc"
          export LIBPATH=/opt/freeware/lib
          export JAVA_HOME=/usr/java8_64
          export PATH=/opt/freeware/bin:$PATH
      
  • Solaris Sparc

    • 安装 GCC 4.8.2 或更高版本。

    • 添加以下的环境变量:

          export CC=gcc
          export EXTRA_CFLAGS=-m64
          export EXTRA_CXXFLAGS=-m64
          export EXTRA_LDFLAGS=-m64
          export PORTABLE=1
          export PLATFORM_LDFLAGS="-static-libstdc++ -static-libgcc"
      
CentOS7.6安装RocksDB RocksDB是使用C++编写的嵌入式kv存储引擎,其键值均允许使用二进制流。由Facebook基于levelDB开发, 提供向后兼容的levelDB API。RocksDB针对Flash存储进行优化,延迟极小。RocksDB使用LSM存储引擎,纯C++编写。Java版本RocksJava正在开发中。参见RocksJavaBasic。RocksDB依靠大量灵活的配置,使之能针对不同的生产环境进行调优,包括直接使用内存,使用Flash,使用硬盘或者HDFS。 阅读详情

相关推荐

rocksdb install

rocksdb安装,包括gcc更新、依赖项安装

Leveldb vs Rocksdb 在windows下的编译安装

一、前言 有一个微服务系统涉及mongodb,计算服务在运行时需要从mongo拉大量数据,一来一回,不仅mongo容器占用大量内存,服务之间交换数据也拖累了计算时间,这也造成新加的ssd 最高读取速度3500MB/S,完全无用武之地。 那么把数据留一份在宿主机,或许是一个好选择,毕竟 pandas读取csv文件也挺快. OR 改一把,历史数据存在本地的leveldb/rocksdb中也行喽 试一试 总之 多匀些内存给计算服务 岂不美哉 二、安装VCPKG 宿主机是win10,用vcpkg自动

kldoo的专栏 2848

车载毫米波雷达实战:用MATLAB复现DDMA-MIMO雷达的Empty-band算法(附代码解析)

本文详细介绍了车载毫米波雷达中DDMA-MIMO技术的实战应用,重点解析了Empty-band算法的原理与MATLAB实现。通过搭建仿真环境,文章深入探讨了发射天线通道解调与相位法速度解模糊两大核心难题的解决方案,并提供了完整的代码解析,为雷达算法工程师提供了从理论到实践的清晰指南。

hill8的博客 562

Windows下使用clion调试LevelDB与rocksdb

使用clion打开项目,在根目录下新建一个app目录,app目录下新建一个main.cpp。在CMakeList.txt里面寻找leveldbutil字符串,然后在下面增加。

程序员小董的专栏 1202

手机安装Kali Linux

在数字化时代,信息安全和隐私保护显得尤为重要。,作为一款专业的和工具,因其强大的功能和丰富的资源库而受到广大安全研究者和爱好者的青睐。然而,我们通常只能在传统的电脑设备上安装和使用Kali Linux。那么,有没有可能将也变成一款随身携带的Kali Linux设备呢?答案是肯定的。本文将介绍如何在手机上安装Kali Linux,使你的手机变成一款强大的移动安全工具。,我们需要明确一点,手机安装Kali Linux并非简单的操作,需要对手机进行一定的改造和配置。

2301_80124151的博客 6965

美团mtgsig 3.1.0算法还原:从加密入口到d1生成的完整链路拆解

本文详细拆解了美团mtgsig 3.1.0签名算法的完整逆向过程。通过定位加密入口函数eH,理清a6、a5、a8到d1的生成依赖链,并运用插桩技术,在JSVMP混淆环境下逐步还原了核心参数的生成逻辑,为逆向工程实践提供了清晰的纯算还原方法论。

oo7890的博客 778

Hyperledger-indy 官方文档人工翻译

博客内容为Hyperledger-indy官方部署文档的翻译,翻译内容系原创,转载注明来源 Hyperledger-indy的中文资料较少,希望能为初次接触Hyperledger-indy的小伙伴提供一些参考。

qq_38564294的博客 643

基于多物理参数数据融合和先进人工智能算法的锂电池热失控监测传感器

基于多物理参数数据融合和先进人工智能算法的锂电池热失控监测传感器是多种方案中的优选项!是一种快速、准确、可靠、应用广泛的传感方案!可有效监测锂离子电池热失控风险,保障化学能储能电站安全!

chicheng_danxin的博客 2412

GitHub中文翻译插件3分钟安装指南:如何把英文GitHub界面变成中文

如果你也曾在打开 GitHub 时,盯着满屏英文菜单和按钮反复查词典,这篇文章就是为你写的。GitHub 中文化插件(github-chinese,也就是大家常说的 GitHub中文翻译插件)是一款开源用户脚本,大约 3 分钟就能让界面菜单、按钮、时间提示,甚至项目简介都变成中文。它只改屏幕上的显示,不动 GitHub 的功能,也不收集任何账号数据。下面带你从效果到安装、从功能到避坑,一次讲清楚。

gitblog_00581的博客 819

嵌套交叉验证的‘双循环’哲学:为什么你的模型评估总是不准?

本文深入探讨了嵌套交叉验证(Nested Cross-Validation)在机器学习模型评估中的关键作用,揭示了传统交叉验证方法存在的偏差问题。通过双重循环设计,嵌套交叉验证有效隔离数据,提供无偏评估,显著提升模型在真实场景中的性能预测准确性。文章还提供了工程实践中的优化策略和量化分析,帮助开发者在计算成本与评估精度之间找到平衡。

b3n4m5q6w7的博客 225

基于 DnLUT 超高效的彩色图像去噪(CVPR 2025),本地部署 DnLUT 模型,图像去噪算法训练和推理,全网最详细教程

基于 DnLUT 超高效的彩色图像去噪(CVPR 2025),本地部署 DnLUT 模型,图像去噪算法训练和推理,全网最详细教程

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 365

Next.js App Router 状态共享实战:在 share-state 示例中掌握 Layout 与页面间的 Context 共享

本篇技术指南以仓库中的 [share-state 示例](https://link.gitcode.com/i/c18a35b506553108f3faeff840c39b02) 为蓝本,讲解如何在 Next.js App Router(app 目录)下跨 Layout 与各级页面共享 React 状态。读完你将掌握一套可复用的「客户端 Layout + 服务端页面 + Context Provi

gitblog_01020的博客 631

数据分析之AB测试基础知识

在 A/B 测试中,零假设是两组的指标是相同的,当假设检验推断出两组指标不同,但事实上两组指标相同时,就是第一类错误。

qq_45727498的博客 561

UDP服务器设计实战:从回声服务到英译中字典服务器的架构演进

网络编程是构建分布式系统的基石,其核心在于实现不同主机间的进程通信。UDP协议作为一种无连接的传输层协议,以其低延迟和简单性,常被用于实时性要求高、可容忍少量丢包的场景,如DNS查询、音视频流传输。理解UDP的socket编程模型,掌握其数据报收发原理,是开发高效网络服务的关键。通过将业务逻辑与网络通信层解耦,可以构建出灵活、可扩展的服务架构,例如实现一个具备实际功能的英译中字典服务器。这种设计模式不仅提升了代码的模块化程度,也为后续引入多线程、IO多路复用等并发处理技术奠定了基础,是迈向高性能服务器开发的

weixin_33747129的博客 396

CentOS 7 Linux yum 安装 Docker,解决 Docker 镜像拉取失败问题

本文详细介绍了在 CentOS 7 系统上通过 yum 安装 Docker 的完整流程,包括卸载旧版本、配置阿里云国内镜像源、安装 Docker 及其组件、设置日志限制等关键步骤。针对国内用户常见的 Docker 镜像拉取失败问题,提供了两种实用解决方案:配置镜像加速器或通过代理访问官方源,并附带验证方法与排错指南,帮助读者高效完成 Docker 环境部署。

寒水馨 · 轻量级技术文档 · hanshuixin.org 1718

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

RocksDB安装及基本接口使用的初学者指南

RocksDB 是 Facebook 的一个实验项目,目的是希望能开发一套能在服务器压力下,真正发挥高速存储硬件性能的高效数据库系统。RocksDB是一个存储引擎,不提供网络服务,只专注于具体的存储。这是一个 C++ 库,允许存储任意长度二进制 KV 数据。支持原子读写操作。RocksDB 依靠大量灵活的配置,使之能针对不同的生产环境进行调优,包括直接使用内存,使用 Flash,使用硬盘或者 HDFS。支持使用不同的压缩算法,并且有一套完整的工具供生产和调试 使用。

Lion_Long的博客 8081

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【亲测免费】 RocksDB 安装和配置指南

### 基础介绍 RocksDB 是一个由 Facebook 开发和维护的嵌入式持久化键值存储库。它特别适用于快速存储环境,如闪存驱动器和高性能磁盘驱动器。RocksDB 基于 Google 的 LevelDB 开发,具有灵活的写放大因子(WAF)、读放大因子(RAF)和空间放大因子(SAF),并且支持多线程压缩,适合存储多 TB 数据。 ### 主要编程语言 RocksDB 主要使用 C++ ...

gitblog_07981的博客 1666

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Windows下 VS2015编译RocksDB

Windows下 VS2015编译RocksDB VS2015编译RocksDB RocksDB 是一个来自 facebook 的可嵌入式的支持持久化的 key-value 存储系统,也可作为 C/S 模式下的存储数据库,但主要目的还是嵌入式。RocksDB 基于 LevelDB 构建。 1、下载rocksdb源码 git clone https://github.com/

linuxheik的专栏 1583

rocksdb 安装全过程 & 一些问题解决方法

前言 Rocksdb是leveldb,基于key-value,也可以将数据长期存储的数据库。关于rocksdb的详细描写。这位大佬写的很是详细,而且网上的资源很多,本文主要讲述如何安装rocksdb。 安装前准备 我的测试用机是centos7 1. 安装C++11,因为rocksdb是完全基于C++进行编写的(不仅又一次感受到了C++的强大 d=====( ̄▽ ̄*)b) yum inst...

斯是陋室,惟汝德馨 1万+

RocksDB静态编译与使用

演示 RocksDB 的静态编译和 g++ 使用过程,并将踩的坑记录下来

weixin_46322986的博客 2997

编译ROCKSDB总结

Rocksdb是挺好的一个东西,就是取得一个可用的库太麻烦。之前我是用的rocksdbsharp里面他有编译好windows 和 linux的库 兼 容性还挺好,ubuntu win10 直接跑没毛病,可惜他是去年build的了,我要用的checkpoint 这么重要的功能,他这个版本没有。于是乎只好自行编译rocksdb,感觉上了一条贼船啊。 我在使用rocksdb开发一个数据库h...

dianjupi9036的博客 688

RocksDB

RocksDB是使用C ++编写的嵌入式kv存储引擎,其键值均允许使用二进制流。由Facebook基于levelDB开发,提供向后兼容的levelDB API。 RocksDB针对Flash存储进行优化,延迟极小.RocksDB使用LSM存储引擎,纯C ++编写.Java版本RocksJava正在开发中。参见RocksJavaBasic。 RocksDB依靠大量灵活的配置,使之能针对不同的生产环境...

点点的博客 2279

攻克RocksDB Windows构建“静默死亡“难题:从0到1的故障排除指南

RocksDB是Facebook开发的高性能嵌入式键值存储库,基于LevelDB构建,广泛应用于需要高效数据持久化的场景。然而在Windows平台上构建RocksDB时,开发者常遭遇令人沮丧的"静默死亡"问题——编译过程无错误提示却突然终止。本文将系统梳理Windows环境下RocksDB构建的常见陷阱与解决方案,帮助开发者顺利搭建开发环境。 ## 一、Windows构建环境准备清单 📋 成

gitblog_00712的博客 417

JNI加载dll,cant find dependent libraries

1、可能是找不到动态库,用的时候把动态库拷贝到java运行目录下 2、如果加载A.dll,A.dll依赖B.dll。没有显示加载B.dll的话,也是不能通过。通过try catch,报错,找不到依赖项目,可以使用dependency walker查看依赖项目...

xinqingwuji的博客 2398

nacos服务启动报错: librocksdbini.dll:Can‘t find dependent libraries

dll资源库缺失或找不到, 是比较常见的问题, 本章节就是因为运行nacos服务时缺失对应的librocksdbini资源库信息, 实际就是缺少Visual C++., 选择对应版本进行下载.1)丶点击下载跳转路径。

spring_is_coming的博客 1462

如何在 Apple M1 上使用 Apache Pulsar

Apache Pulsar 将在 2.11 版本升级 RocksDB( 6.10.2 -> 6.29.4.1),届时将原生支持在 Apple M1 上运行 Pulsar。那老版本 Apache Pulsar 如何再 M1 上使用呢,都在文章里。

傅腾的专栏 1332
上一篇: B 站内推喽!扫码直接投递!
下一篇: Go 对象池一个坑引起的一次探究
水不要鱼
博客等级 码龄7年 7粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值