当前位置:  开发笔记 > 后端 > 正文

嵌入式非关系型(nosql)数据存储

如何解决《嵌入式非关系型(nosql)数据存储》经验,为你挑选了3个好方法。

我正在考虑为我的Windows桌面应用程序使用/实现某种嵌入式键值(或文档)存储.我希望能够存储各种类型的数据(GPS轨道就是一个例子),当然也能够查询这些数据.数据量将无法同时加载到内存中.

我正在考虑使用sqlite作为键值存储的存储引擎,类似于y-serial,但是用.NET编写.我还读到了FriendFeed使用MySQL来存储无模式数据,这是如何将RDBMS用于非关系数据的一个很好的指针.sqlite似乎是一个很好的选择,因为它的简单性,可移植性和库大小.

我的问题是嵌入式非关系型商店是否还有其他选择?它不需要是可分发的,也不必支持事务,但它必须可以从.NET访问,并且应该具有较小的下载大小.

更新:我发现了一篇名为SQLite作为键值数据库的文章,它将sqlite与Berkeley DB进行了比较,Berkeley DB是一个嵌入式键值存储库.



1> Laurion Burc..:

Windows有一个内置的嵌入式非关系存储.它被称为ESENT,由多个Windows应用程序使用,包括Active Directory和Windows桌面搜索.

http://blogs.msdn.com/windowssdk/archive/2008/10/23/esent-extensible-storage-engine-api-in-the-windows-sdk.aspx

如果您想要.NET访问,可以使用CodePlex上的ManagedEsent层.

http://managedesent.codeplex.com/

该项目有一个PersistentDictionary类,它实现了一个实现IDictionary接口的键值存储,但是由数据库支持.



2> Jafin..:

看看RavenDB.看起来它可以嵌入并且是无模式的并且可以与.NET一起使用

来自网站:

可扩展的基础架构:Raven构建于现有的,经过验证的可扩展基础架构之上

简单的Windows配置:Raven很容易在Windows上作为服务或IIS7网站进行设置和运行

Transactional:Raven支持System.Transaction与ACID事务.如果您将数据放入其中,那么该数据将保留在那里

Map/Reduce:使用Linq查询轻松定义map/reduce索引

.NET客户端API:Raven附带了一个功能齐全的.NET客户端API,可以实现工作单元等等

RESTful:Raven是围绕RESTful API构建的



3> Oliver Hanap..:

我个人会选择使用NHibernate(和Fluent NHibernate)的SQLite.NHibernate可以为您的类自动生成数据库模式,因此您只需要指定要保留的类,并且使用Fluent NHibernate非常容易.此外,您可以搜索特定对象,而无需将所有数据加载到内存中.

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有