【问题标题】:NoSQL for mobile apps? [closed]用于移动应用的 NoSQL? [关闭]
【发布时间】:2011-05-08 00:37:31
【问题描述】:

是否有任何已建立的 noSQL 数据库解决方案可用于开发原生移动应用程序(Android 和/或 iO)?

【问题讨论】:

    标签: android ios mobile nosql


    【解决方案1】:

    我认为对于原生移动应用程序已建立 NoSQL 后端,但 Couchbase Mobile 是一个出色的 NoSQL 数据库,可同时用于 iOS 和 Android。

    iOS:http://www.couchbase.com/products-and-services/mobile-couchbase

    安卓:https://github.com/couchbase/couchbase-lite-android

    【讨论】:

    • Android 链接已失效。还有 couchbase != couchDB。
    【解决方案2】:

    leveldb 是这个街区的新人。 它是一个类似于 BigTable 的键/值存储,但专为嵌入式设备而设计。他们的许可证是New BSD,比东京内阁的LGPL好很多。

    它的速度非常快,并且直接使用 Xcode 构建。

    【讨论】:

    • 不需要。在这些平台上编译是 C++ 和琐碎的。 libz 也没有提到 iOS 或 Android,每个人都在内部使用它。
    【解决方案3】:

    如果有用于移动操作系统的 Tokyo Cabinet 端口,我不会感到惊讶;但说真的,NoSQL 会为每个 平台中已经包含的 SQLite 库带来什么?

    • 简单的语义。在 SQL 中执行键/值与在任何 NoSQL 数据库中一样容易
    • 可扩展性。支持数 PB 的手机不符合移动平台的条件。
    • 琐碎的分片。手机集群还没有那么流行
    • 小实现。 tokyo cabinet源代码是4.8MB,SQLite是4.7MB。没有真正的收获(而且它已经存在)。

    简而言之,如果需要,您可以将 SQLite 用作“小型 NoSQL”。它也相当快。

    【讨论】:

    • 无模式数据模型、文档数据库、图数据结构、多列数据库、复制呢?
    • 无模式和文档数据库只不过是键值和“将 {XML|JSON} 文档存储在值中”。复制...在手机上?列数据库用于大数据(在小数据和非磁性存储上,行和列数据库是等效的)图形数据......这很有趣,但同样,对于小数据集,CPU 能力远远超过记录之上基于数据。
    【解决方案4】:

    编辑:(2016 年 4 月)

    Realm 是当今的发展方向。


    如果还有人感兴趣,我已经为 TokyoCabinet 找到了这两个包装器:

    无论如何,我认为 LevelDB 更好。

    【讨论】:

    • 你确定 Realm 是 NoSql 吗?!
    • 好吧NoSql 是一个非常模糊的术语,它指的是任何不以标准关系方式存储数据的数据库。 Realm 是一个Object Database,它适合 NoSql 数据库的配置文件。
    【解决方案5】:

    对于 android 有这样的:

    https://github.com/rehacktive/waspdb

    目前是 alpha 阶段,但它可以满足您的要求。

    【讨论】:

      【解决方案6】:

      CouchDB 经常被宣传为移动应用程序的 NoSQL 数据库,因为它具有同步功能。还有Mobile Couchbase 的测试版。

      【讨论】:

        【解决方案7】:

        SnappyDB 对于 android 来说似乎是相当不错的 NoSQL 选项。针对 SQLite 的读/写基准测试非常惊人。

        【讨论】:

        • 虽然 snappydb 是一个很好的解决方案,但是查询非常昂贵,因为我们不能像在 NoSQL 中那样查询值。我们必须将所有列表放入内存并应用过滤器才能获得原始结果,这似乎非常昂贵。请纠正我
        • @DRYBeliever 虽然我同意你的观点,所以为你的评论 +1,我想知道你所说的任何其他嵌入式 NoSQL 解决方案是否在内部没有做同样的事情
        【解决方案8】:

        iBoxDB 是一个高性能的 NoSQL 数据库,适用于 Android 和 Windows Phone。易于使用,零配置,复制和运行。
        对于 java android https://github.com/iboxdb/forjava
        for.net windows phone https://iboxdb.codeplex.com/

        【讨论】:

          【解决方案9】:

          我在 Objective-C 中编写的新东西是 SimpleDB。它是一个键/值存储,可以在这里找到:http://github.com/AaronBratcher/SimpleDB

          因为存储的值必须是JSON,所以可以完成排序并返回数据的特定部分。

          特殊功能

          • 非常易于使用 - 无需 SQL!
          • 指定日期之后的条目的自动删除选项
          • 无需直接与数据库交互即可使用该类 - 全部完成
          • 所有方法都是类级别的方法,因此不需要类的实例
          • 线程安全

          API

          +(BOOL) hasKey:(NSString*) key inTable:(NSString*) table;
          +(NSArray*) keysInTable:(NSString*) table;
          +(NSArray*) keysInTable:(NSString*) table orderByJSONValueForKey:(NSString*)jsonOrderKey passingTest:(BOOL (^)(NSString* key, NSString* value, NSDate* dateAdded, NSDate* dateModified));
          
          +(NSString*) valueForKey:(NSString*) key inTable:(NSString*) table;
          +(NSDictionary*) dictionaryValueForKey:(NSString*) key inTable:(NSString*) table;
          +(id) jsonValueForKey:(NSString*) jsonKey tableKey:(NSString*) key inTable:(NSString*) table;
          
          +(void) setValue:(NSString*) value forKey:(NSString*) key inTable:(NSString*) table;
          +(void) setValue:(NSString*) value forKey:(NSString*) key inTable:(NSString*) table autoDeleteAfter:(NSDate*) date;
          
          +(void) deleteForKey:(NSString*) key inTable:(NSString*) table;
          
          +(void) dropTable:(NSString*) table;
          
          +(dbStatus) status;
          +(NSString*) guid;
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-02-21
            • 2015-07-04
            • 2010-12-15
            • 1970-01-01
            • 2023-04-05
            • 2012-05-20
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多