我正在编写一个需要嵌入式数据库来存储基本信息的服务(id、插入日期、上次更新以及我将返回的大量实际数据)。我将有多个线程同时读取不同的行,并且至少有 1 个线程同时对行进行更新。我更喜欢多个线程进行更新的选项,但我可以只使用一个线程进行更新。基本上这是一个缓存服务,但通常我 99% 的数据将在缓存中,我可以有一个线程来填充缺少的内容,因为它是一个服务的缓存,它限制了每分钟的请求数,因此缓存了所有数据.
我希望能够在 Windows 或 linux 上运行它,因此必须支持 dotnet 和 mono,但我看过的几乎所有嵌入式数据库都不支持并发,这对我来说是必须的。对象数据库或 sql 数据库只要能与 dotnet 很好地集成,就不会兼而有之。
我希望有人在类似情况下需要具有并发支持的嵌入式数据库。此外,如果可能的话,我更喜欢免费(成本明智)的数据库,因为这只是现阶段家庭的个人项目。
我查看了许多数据库(STSdb、SQL CE、Firebird、codeplex 上的一堆开源数据库),但它们要么不能在 mono/linux 上工作,要么似乎没有并发支持。