Reveldb

NoSQL 数据服务器
授权协议 LGPL
开发语言 C/C++
所属分类 数据库相关、 NoSQL数据库
软件类型 开源软件
地区 国产
投 递 者 亢奇
操作系统 Linux
开源组织
适用人群 未知
 软件概览

reveldb 是一个基于 google leveldb 的 NoSQL 数据服务器,网络连接采用了 libevent 的 HTTP 接口,因此 reveldb 天生就适合处理 HTTP 请求。

但更确切地说,reveldb 并没有直接采用 libevent 的 HTTP 接口,而是使用了另外一个基于 libevent 的网络连接库 libevhtp,并对它做了适当的修改,使之成为 reveldb 的底层组件 evhttpx,evhttpx 为 reveldb 提供了 HTTP 和 HTTPS 支持,因此,reveldb 除了能够处理 HTTP 请求外,也能够处理 HTTPS 请求,这一特性是 Kyoto Tycoon 没有的。

Reveldb 定位于 Kyoto Tycoon 类似,也是一个数据库网络层的服务,具体一点就是 Leveldb 的网络层接口(因为 leveldb 本身只是一个程序库,并没有服务器/客户端的概念),reveldb 封装了 leveldb 的绝大部分操作,如 Snapshot, Writebatch, Iterator 等等,并且在此基础之上扩展了很多命令,比如 string 的 append, prepend, insert,Key-Value 的 mset, mget, mdel, seize, mseize,此外还有 range query, 基于编辑距离的查找,正则式 regex 匹配查找;同时还提供了一些数据库管理的命令,如compact, repair, destroy 等;Ling外,reveldb 支持打开多个数据库,底层使用了红黑树缓存各个客户端已经打开的 leveldb 实例。

HTTP RPC 示例:

/rpc/echo

  • Description: Echo back the input data as the output data, as well as HTTP headers, just for testing.

  • input: (optional): arbitrary records.

  • output: (optional): corresponding records to the input data.

  • status code: 200.

  • sample request:

    http://127.0.0.1:8088/rpc/echo?db=default&key=hello&value=world
  • sample response:

    {
        "code": 200,
        "status": "OK",
        "message": "Reveldb echoed the HTTP headers and query arguments of your request.",
        "date": "Mon, 17 Dec 2012 12:50:22 GMT",
        "request": {
            "headers": {
                "Host": "127.0.0.1:8088",
                "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:17.0) Gecko/20100101 Firefox/17.0",
                "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
                "Accept-Language": "en-US,en;q=0.5",
                "Accept-Encoding": "gzip, deflate",
                "Connection": "keep-alive"
            },
            "arguments": {
                "db": "default",
                "key": "hello",
                "value": "world"
            }
        }
    }

 

 

/rpc/set

  • Description:

  • input: db: the database identifier.

  • input: key: key to be added.

  • input: value: value along with the key to be added.

  • status code: 200.

  • sample request:

    http://127.0.0.1:8088/rpc/set?db=hello&key=hello&value=world
  • sample response:

    {
        "code": 200,
        "status": "OK",
        "message": "Set key-value pair done.",
        "date": "Thu, 27 Dec 2012 09:11:26 GMT"
    }

/rpc/get

  • Description:

  • input: db: the database identifier.

  • input: key: which key to get.

  • status code: 200.

  • sample request:

    http://127.0.0.1:8088/rpc/get&db=hello&key=hello
  • sample response:

  • {
        "code": 200,
        "status": "OK",
        "message": "Get key-value pair done.",
        "date": "Thu, 27 Dec 2012 09:19:05 GMT",
        "kv": {
            "hello": "worldworld"
        }
    }
 相关资料
  • 我正在研究和使用Spring Cloud数据流进行一些概念验证,但遇到了一些问题: 我正在尝试启动本地数据流服务器。为了实现这一点,我创建了一个Spring Boot应用程序,并用< code > @ EnableDataFlowServer 对其进行了注释。 当我尝试运行时,我收到以下错误: 我在寻求帮助,我读到这可能是一个pom的版本问题。实际上我的< code>pom.xml是: 谁能帮我?

  • 问题内容: 如何确保我的文件服务可靠且可扩展?它可以处理多少个并行请求? 我正在考虑超出硬件功能和带宽。 我正在关注在JavaServlet中流式传输大文件 问题答案: 如果这些是静态文件,则 直接 链接到它。所有不错的servlet容器/应用服务器都有完善的。如果这些是静态文件,这些静态文件位于您要链接到的Web应用程序 之外 ,那么您也可以仅将这些文件的根文件夹添加为另一个上下文。目前还不清楚

  • 如果一个微服务只知道它自己的领域,但是有一个数据流需要多个服务以某种方式交互,那该怎么做呢? 假设我们有这样的东西: 为论证起见,假设一个订单发货后,就应该创建发票。 我确实知道这可以被认为是高度基于意见的。但它也有具体的一面,因为微服务不应该做上述的事情。因此,必须有一个“根据定义它应该做什么”,这不是基于意见的。 开枪啊。

  • 基本信息 Path: /api/open/import_data Method: POST 接口描述: 请求参数 Headers 参数名称 参数值 是否必须 示例 备注 Content-Type application/x-www-form-urlencoded 是 Body 参数名称 参数类型 是否必须 示例 备注 type text 是 swagger 导入方式 json text 否 {"a

  • 10.1.28马里亚布 我正在尝试在voyager管理面板中创建一个新表,但我不断收到错误: 通用的异常:执行“CREATE TABLE newReport(id INT UNSIGNED AUTO_INCREMENT NOT NULL,owner_id INT DEFAULT NULL,title VARCHAR(166)”时发生异常默认为NULL,描述文本默认为NULL,报告json默认为NU

  • 我正在使用ipython笔记本电脑,通过连接到一个服务器,我不知道如何通过编程将东西(例如数据帧、.csv文件等)下载到本地计算机。因为我不能像C://user/。。。它会下载到他们的机器上而不是我的

  • 这是我的服务器端解码器 这些是我的客户端->服务器数据包

  • 在spring cloud dataflow中,根据我的理解,每个流都是一个微服务,但数据流服务器不是。我说的对吗?