有没有类似 SQLite 的 NoSQL 数据库? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
xss

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

  •  
  •   xss Mar 1, 2017 4333 views
    This topic created in 3347 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
    phx13ye
        1
    phx13ye  
       Mar 1, 2017   3
    kindjeff
        2
    kindjeff  
       Mar 1, 2017
    可是 SQLite 是关系型数据库啊~
    changwei
        3
    changwei  
       Mar 1, 2017 via Android
    这个问题是钓鱼吗? sqlite 明明是关系型数据库啊!
    changwei
        4
    changwei  
       Mar 1, 2017 via Android
    单文件,可以考走数据库,并且具有丰富语言支持,除了第三点有点麻烦,其他的需求,微软的 access 可以做到。
    lcsoft
        5
    lcsoft  
       Mar 1, 2017   1
    unqlite 可以,但第三点不太符合。
    fzleee
        6
    fzleee  
       Mar 1, 2017   1
    redis ?貌似满足楼主的三个需求
    RE
        7
    RE  
       Mar 1, 2017
    json 可以吗……
    wind3110991
        8
    wind3110991  
       Mar 1, 2017
    除了 redis ,还能想到其他?

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

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

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

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

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

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

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

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

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

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

    实在不行只能 sqlite 了.

    golang 太....直接静态了, cp 部署无压力....
    xss
        47
    xss  
    OP
       Mar 2, 2017
    @ikaros 你这个方案, 程序一崩溃, 所有的增量操作都丢了.....到头来还得想办法持久化....
    xss
        48
    xss  
    OP
       Mar 2, 2017
    @Michaelssss 所以...搜索的时候得配合 grep...? Orz
    再或者我用 kv 存个倒排索引...然后支持搜索也可以......
    xss
        49
    xss  
    OP
       Mar 2, 2017
    @j4fun 这个, 的确很冷门~
    About     Help     Advertise     Blog     API     FAQ     Solana     1219 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 139ms UTC 17:29 PVG 01:29 LAX 10:29 JFK 13:29
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86