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