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# 的跨平台嵌入式数据库/键值存储的主要内容,如果未能解决你的问题,请参考以下文章
.NET Core / C# 开发 IOT 嵌入式设备的个人见解
.NET Core / C# 开发 IOT 嵌入式设备的个人见解