我正在寻找 .NET 的持久键值存储。要求是:
- 存储用于由字符串标识并具有几个可选(命名)属性的对象,这些属性的值只是字节数组。对于 SQL 解决方案,我会将其建模为一个字符串 -> id 表和几个 id -> blob 表。
- 预期的数据量是几兆字节(目前不太可能超过 10 Mb,但扩展到 100 Mb 将是一个不错的奖励)
- 轻量级 - 最好是单一组件,绝对没有外部应用程序
- 读取比写入更频繁,至少高出 100 倍。
- 快速读/写访问——我期望内存存储和对数据更新的延迟写入;我可以定期自己生成异步写入,如果存储可以这样做,则可以加分。
- 原子 I/O - 如果进程在写入过程中终止,数据库不应中断;否则数据不是关键的,即不需要额外的冗余。
目前我认为 SQLite 可以在这里工作;但是这似乎有点矫枉过正——我只需要键值存储,不需要完整的 SQL 支持。我也听说过 bdb 和 libdb-dotnet 绑定——它似乎更轻量级,但我不知道性能/一致性特征。
任何人都可以在这里推荐一些东西吗?欢迎提供其他参考资料(即,如果 .NET Framework 中有可以完成这项工作的东西,那就太好了),以及使用 SQLite 或 libdb-dotnet(或一般的 bdb)或本土解决方案的经验,如果它是无痛的.