NoSQL移动应用程序?
是否有任何已build立的noSQL数据库解决scheme用于开发原生移动应用程序(Android和/或iOs)?
我不认为有一个原生的移动应用程序build立的 NoSQL后端,但Couchbase移动是一个伟大的NoSQL数据库与iOS和Android的实施。
iOS: http : //www.couchbase.com/products-and-services/mobile-couchbase
Android: https : //github.com/couchbase/couchbase-lite-android
leveldb是这个街区上的新人。 这是一个非常类似于BigTable的关键'/价值存储区,但专为embedded式设备而devise。 他们的执照是新BSD,比东京内阁的LGPL好得多。
它的速度非常快,可以直接从Xcode中构build出来。
如果有东京内阁的移动操作系统端口,我不会感到惊讶; 但是严重的是,NoSQL会把每个平台上已经包含的SQLite库带到哪里呢?
- 简单的语义。 在SQL中执行键/值就像在任何NoSQL数据库上一样简单
- 可扩展性。 一个多字节function的手机不具备移动平台的资格。
- 微不足道的分片。 电话群还不是很受欢迎
- 小实施。 东京的机柜源代码是4.8MB,SQLite是4.7MB。 没有真正的收益(它已经存在)。
简而言之,如果你愿意,你可以使用SQLite作为“小型NoSQL”。 它也相当快。
编辑 :(四月2016)
领域是现在走的路。
如果有人还有兴趣的话,我找了东京柜台的这两个封皮:
- TSDocDB
- BNRPersistence
无论如何,我认为LevelDB更好。
由于其同步function, CouchDB经常被公布为移动应用程序的NoSQL DB。 还有一个移动Couchbase的testing版本。
SnappyDB似乎相当不错的Android的NoSQL选项。 对SQLite的读/写基准是相当惊人的。
iBoxDB是一个高性能的NoSQL数据库,同时支持Android和Windows Phone。 易于使用,零configuration,复制和运行。
为Java的Android https://github.com/iboxdb/forjava
for.net windows phone https://iboxdb.codeplex.com/
我在Objective-C中编写的新东西是SimpleDB。 这是一个关键/价值存储,可以在这里find: http : //github.com/AaronBratcher/SimpleDB
因为存储的值必须是JSON,所以可以完成sorting并返回数据的特定部分。
特殊function
- 非常容易使用 – 不需要SQL!
- 在指定date后自动删除选项
- 没有直接的数据库交互需要使用类 – 它做的一切
- 所有方法都是类级别的方法,所以不需要类的实例
- 线程安全
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;