xss
V2EX  ›  数据库

有没有类似 SQLite 的 NoSQL 数据库?

  •  
  •   xss · Mar 1, 2017 · 4747 views
    This topic created in 3536 days ago, the information mentioned may be changed or developed.

    需求如下:

    1. 0 配置.
    2. 数据库文件为单文件, 考走文件即意味着考走数据库.
    3. 有较为丰富的语言支持(C/C++/Python/JavaScript etc.)

    看了一下, 好像目前市面上并没有这种方案.

    Supplement 1  ·  Mar 2, 2017
    好吧, 貌似有歧义, 我再说明一下:

    1. 数据库文件需要是单文件(其实和 sqlite 没关系, 只不过用 sqlite 举个例子, sqlite 的最终库文件就是一个单文件)
    2. 不需要部署任何支持(下面朋友说的 BDB 需要 erlang)和服务, 拿过来就用(比如 py 里面 import sqlite 之后直接用就可以了)
    3. NoSQL 类型数据库, 最好是 document oriented (例如 mongo 这种使用 json 为基础数据格式的)

    上面的需求主要是一下场景:

    比如我要写个 wiki, 此 wiki 只限于很小范围内使用, 而且文章数量在 3000 篇以内.
    同时又要支持文章内容检索.

    我主要是想直接 cp 工程目录直接用就行了(例如我用 nodejs 写这个 wiki, cp 过去直接 npm 就搞定了), 不需要搭 mysql/mongo/nginx/php 之类的服务了.
    49 replies  •  2017-03-02 18:34:24 +08:00
    kindjeff
    kindjeff
    Mar 1, 2017
    2
    可是 SQLite 是关系型数据库啊~
    changwei
    changwei
    Mar 1, 2017 via Android
    3
    这个问题是钓鱼吗? sqlite 明明是关系型数据库啊!
    changwei
    changwei
    Mar 1, 2017 via Android
    4
    单文件,可以考走数据库,并且具有丰富语言支持,除了第三点有点麻烦,其他的需求,微软的 access 可以做到。
    lcsoft
    lcsoft
    Mar 1, 2017❤️1
    5
    unqlite 可以,但第三点不太符合。
    fzleee
    fzleee
    Mar 1, 2017❤️1
    6
    redis ?貌似满足楼主的三个需求
    RE
    RE
    Mar 1, 2017
    7
    json 可以吗……
    wind3110991
    wind3110991
    Mar 1, 2017
    8
    除了 redis ,还能想到其他?

    1.除了第一条,基本都满足
    2.rdb 烤走带走数据
    3.支持几乎所有主流语言客户端

    然而, 0 配置,你能列举一个给我吗
    这样的数据库是没有任何意义的
    Muninn
    Muninn
    Mar 1, 2017
    9
    单文件数据库因为没有服务端
    相当于每个语言要完全实现一遍
    使用场景又少
    性能注定不好
    还不如自己用自己的语言写个内存结构异步持久化
    所以注定是找不到这样的东西的啦
    linpf
    linpf
    Mar 1, 2017
    10
    @kindjeff
    @changwei

    题主的意思是像 SQLite 那样单文件存储的数据库,方便传输和保存。
    jininij
    jininij
    Mar 1, 2017 via Android❤️1
    11
    这和 sqlite 是不是 nosql 有什么关系?
    『有没有和旺财一样蠢的狗』
    和『有没有和旺财一样蠢的人』是一个意思么。
    RIcter
    RIcter
    Mar 1, 2017❤️3
    12
    你们语文都怎么学的..
    fuxiaohei
    fuxiaohei
    Mar 1, 2017
    13
    boltdb
    vultr
    vultr
    Mar 1, 2017
    14
    Berkeley DB
    billlee
    billlee
    Mar 1, 2017
    15
    你把 SQLite 当成 key-value 数据库来用就行了
    wellsc
    wellsc
    Mar 1, 2017
    16
    redis.dump
    holmesabc
    holmesabc
    Mar 1, 2017
    17
    leveldb.
    polythene
    polythene
    Mar 2, 2017
    18
    Rocksdb ,生产中有使用
    beginor
    beginor
    Mar 2, 2017 via Android
    19
    db4o
    loading
    loading
    Mar 2, 2017 via Android
    20
    Sqlite 能当 kv 库用。可能很多 api 没有,但是都不是必须的。
    owt5008137
    owt5008137
    Mar 2, 2017 via Android
    21
    直接用 leveldb 或者 rocksdb 呗
    iloveyou
    iloveyou
    Mar 2, 2017❤️7
    22
    看这个帖子真感觉目前 v2 用户智商下降的厉害
    dsg001
    dsg001
    Mar 2, 2017
    23
    目前用 sqlite 做 kv 库,很多不爽,但胜在小巧方便
    BOYPT
    BOYPT
    Mar 2, 2017❤️1
    24
    起码 unqlite 有楼主举例的 C/C++/Python/JavaScript 的绑定实现了……
    46fo
    46fo
    Mar 2, 2017
    25
    tabris17
    tabris17
    Mar 2, 2017
    26
    berkeley db
    mudone
    mudone
    Mar 2, 2017
    27
    BDB
    lijinma
    lijinma
    Mar 2, 2017
    28
    没看懂题目的人,你确定你看了题目了?
    incompatible
    incompatible
    Mar 2, 2017 via iPhone❤️1
    29
    一些时间之前有一个几乎一模一样的帖子,供楼主参考一下
    https://www.v2ex.com/t/293540

    顺便建议一下请你下次发帖之前可不可以先搜索一下是否同样的问题已经有答案了?
    xss
    xss
    OP
    Mar 2, 2017
    30
    @BOYPT
    @Muninn
    @RE
    @RIcter
    @beginor
    @billlee
    @changwei
    @dsg001
    @fuxiaohei
    @fzleee

    多谢各位关注, 发现有的人明白我的意思了, 有的人没明白. 没有明白的人看一下我的 append 吧.
    目前来看, 最为满足条件的就是这货了:
    https://unqlite.org/

    单文件, 无服务进程, 0 配置, API 支持的语言还算可以. 最主要的是 document oriented, 正好满足存放文章的需求.

    kv 型的数据库用来做快速索引还不错, 但是无法满足我存文章的这个场景. 不过见识了很多没见过的 kv 型数据库. 又涨姿势了....
    xss
    xss
    OP
    Mar 2, 2017
    31
    @wind3110991 sqlite 不就是 0 配置么, 我就是小规模数据, 性能根本就不是我需要考虑的问题. python 里面,直接 import sqlite, 然后写 sql 语句就行了.
    enenaaa
    enenaaa
    Mar 2, 2017
    32
    你这个需求 sqlite 就很好,用其他不太成熟、流行的系统, 后期反而可能各种坑。
    loading
    loading
    Mar 2, 2017 via Android
    33
    其实我不知道为什么楼主一定要用 nosql 。
    建议直接用 sqlite ,我一直在用。

    我真的很难理解前几楼的语文水平。

    我一直没开始用 nosql 也是没找到在小规模使用场景下,比 sqlite 方便的。
    loading
    loading
    Mar 2, 2017 via Android
    34
    目前我用 golang 配合 sqlite ,真正实现了 cp 部署。
    jianzhiyao020
    jianzhiyao020
    Mar 2, 2017
    35
    access(手动滑稽
    nilai
    nilai
    Mar 2, 2017 via iPhone
    36
    txt 记事本。 逃。。。。。。。。。。。。
    yalay
    yalay
    Mar 2, 2017
    37
    也推荐 bolt db
    ikaros
    ikaros
    Mar 2, 2017
    38
    程序内置的 map, 程序结束之前把 map dump 出来,下次启动读取进去
    21grams
    21grams
    Mar 2, 2017
    39
    sql 数据库也可以当 nosql 来用
    scipio
    scipio
    Mar 2, 2017 via Android
    40
    zhicheng
    zhicheng
    Mar 2, 2017
    41
    楼主说的这个叫 Embedded database

    https://en.wikipedia.org/wiki/Embedded_database
    ctftemp
    ctftemp
    Mar 2, 2017
    42
    直接用文件存 json 。。。完美满足需求。
    Michaelssss
    Michaelssss
    Mar 2, 2017
    43
    简单来说。。。因为这个需求可以化简成两部,建立一个 Map ,然后序列化它。。。。= =
    rppig42
    rppig42
    Mar 2, 2017
    44
    json+1
    j4fun
    j4fun
    Mar 2, 2017
    45
    分析一个我们公司在用的,比较冷门的 kyotocabinet 不过不是 NOSQL
    xss
    xss
    OP
    Mar 2, 2017
    46
    @enenaaa
    @loading

    实在不行只能 sqlite 了.

    golang 太屌....直接静态了, cp 部署无压力....
    xss
    xss
    OP
    Mar 2, 2017
    47
    @ikaros 你这个方案, 程序一崩溃, 所有的增量操作都丢了.....到头来还得想办法持久化....
    xss
    xss
    OP
    Mar 2, 2017
    48
    @Michaelssss 所以...搜索的时候得配合 grep...? Orz
    再或者我用 kv 存个倒排索引...然后支持搜索也可以......
    xss
    xss
    OP
    Mar 2, 2017
    49
    @j4fun 这个, 的确很冷门~
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4380 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 168ms · UTC 09:33 · PVG 17:33 · LAX 01:33 · JFK 04:33
    ♥ Do have faith in what you're doing.