C# 的跨平台嵌入式数据库/键值存储

Posted

技术标签:

【中文标题】C# 的跨平台嵌入式数据库/键值存储【英文标题】:Cross-platform embedded database/key-value store for C# 【发布时间】:2010-03-03 20:00:19 【问题描述】:

我正在寻找一种快速、可嵌入的键/值存储,它在键集合(或简单的可嵌入数据库)上具有游标语义,可以在 .NET 和单声道中使用。需要它是开源的,宁愿使用 MIT 或 Apache 风格的许可证而不是 GPL 许可证。不反对需要编写绑定的库,只要二进制文件可用于 windows 和 linux。

考虑的选项:

SQLite - 具有绑定和本机实现,但单线程且不是那么快 嵌入式 InnoDB - 我找不到任何 .NET 绑定,它是 GPLv2 Berkley DB - 我找不到 .NET 绑定 东京内阁 - 我找不到 .NET 绑定并且在 Windows 上构建存在问题 MadCow 内存映射数据结构 - GPLv2

有没有比上面更好的选项,或者我不知道的上面的绑定?

更新:在 4.8 和 5.0 中使用了 Oracle 的官方 BDB 绑定,但无法让它们在单声道下工作。还有一些其他问题(BDB 的 C# 驱动程序仍然不成熟)。编写了一个受 BitCask 启发的 K/V 存储,名为 Firkin (http://github.com/sdether/Firkin) 存储,现在改为使用它。

【问题讨论】:

【参考方案1】:

快速搜索 Berkeley DB Bindings for C# - Berkeley DB for .NET

【讨论】:

好吧,我不觉得自己像个白痴。我以前怎么没发现。 这种事不时发生在我们最好的人身上。 Oracle 的 4.8 版本 BerkeleyDb 实际上带有官方 C# API。【参考方案2】:

我投票给 Berkley DB。它非常快,wrapper 很好。我经常用它

【讨论】:

以上是关于C# 的跨平台嵌入式数据库/键值存储的主要内容,如果未能解决你的问题,请参考以下文章

Java 的嵌入式和分布式键值存储或图形数据库

.NET Core / C# 开发 IOT 嵌入式设备的个人见解

.NET Core / C# 开发 IOT 嵌入式设备的个人见解

嵌入内存的NoSQL键值数据库MapDB,Java

如何使用 Gluon 在 Android 平台上将 H2 数据库连接为嵌入式模式?

干货 | protobuf-c之嵌入式平台使用