Crashresistent和Performance键值存储,可由我们的软件安装和使用

Crashresistent和Performance键值存储,可由我们的软件安装和使用,performance,key-value-store,Performance,Key Value Store,我们有一个产品,其中一个服务器作为windows服务运行,它使用了一个非常古老的数据库QDBM。这是相当快的,但一旦我们的服务崩溃或数据库损坏 我们正在寻找替代品。我们不需要一个复杂的数据库,但应该可以将它与我们的软件一起交付,并自动安装所有内容。它应该能够存储几百万个键和相应的值(每个条目从50字节到几百字节)并执行 一些我们一直保存在记忆中的信息,如果我们能很快地检索到,那将是一件非常棒的事情。多达2000个客户端每秒可以向我们发送一次数据,这意味着我们需要更新数据库中的2000个条目(大部

我们有一个产品,其中一个服务器作为windows服务运行,它使用了一个非常古老的数据库QDBM。这是相当快的,但一旦我们的服务崩溃或数据库损坏

我们正在寻找替代品。我们不需要一个复杂的数据库,但应该可以将它与我们的软件一起交付,并自动安装所有内容。它应该能够存储几百万个键和相应的值(每个条目从50字节到几百字节)并执行

一些我们一直保存在记忆中的信息,如果我们能很快地检索到,那将是一件非常棒的事情。多达2000个客户端每秒可以向我们发送一次数据,这意味着我们需要更新数据库中的2000个条目(大部分时间相同)

我们不需要事务,如果一些最新的信息丢失了也没关系,因为我们在后台发现了最新的数据,过一段时间,这些信息就会被修复

我已经试过了leveldb,从性能的角度来看它还可以,但几个小时后它似乎挂起了。也许是内部重组,这已经被其他人报道过了

Mongodb的速度慢了50倍,我不知道为什么。我的测试只是删除数据库,创建100k个条目并读取它们,这需要21秒,而使用leveldb则需要0.4秒

Redis听起来是一个很好的解决方案,但我很难找到一个仍然受支持的免费windows版本(memurai似乎要花点钱)?大多数人都建议在Windows的linux外壳下安装它,但我认为如果你只有一台数据库服务器,这听起来更像是一个解决方案,但如果你想提供一个应该在数百台计算机上运行的软件,就不是了

正如我所说,也许一个更简单的解决方案对我们来说就足够了

顺便说一句:如果数据库可以同步到另一台计算机(我们有故障切换服务),那就太好了,但这不是必须的


如果你有更多的建议,那就太好了。

你找到解决方案了吗?你找到解决方案了吗?