5

我们需要一个具有以下特征的内存数据结构/数据库服务器:

  1. 独立服务器:将与客户端在同一台机器上运行,因此任何类型的 IPC 都可以
  2. 顺序访问get next/previous key
  3. 每条记录两个键(字符串):实际上是一种双向映射
  4. 在内存中:应该有完全没有持久性的选项
  5. RAM 磁盘/tmpfs 解决方案不可取
  6. SQL/ODBC 是一个选项,但不是必需的
  7. 商业产品可以,如果 OEM 许可价格合理

到目前为止,我们已经考虑了以下选项,但还没有令人满意的解决方案:

  • mysql:回答所有要求,但现在回答一下 OEM 许可证的成本
  • memcached,cassandra:根据在线文档,没有顺序访问
  • Redis:似乎是一个不错的工具,但同样,我get nex/prev在规范中看不到 get
  • Postgres:无法在 Linux/ODBC 上正常运行

似乎所有 nosql 内存数据库都只提供通过键、哈希表样式的直接访问。尚未检查 Apache Derby。

我们在 Linux 上运行,客户端是 C++。

很高兴收到您的建议。谢谢!

编辑:似乎我们将追求mysql选项,我们提供了合理的价格,它也将作为我们的主要(持久)数据库有用。感谢所有答案,像往常一样很难只选择一个。

4

4 回答 4

3

我会看一下 SQLite,将数据库文件名设置为“:memory:”,这将创建一个内存数据库,当您的应用程序关闭时该数据库将不再存在。

它是公共领域,因此没有许可问题

于 2010-12-08T13:18:49.293 回答
2

FastDB应该可以正常工作。它支持内存配置和共享访问。

于 2010-12-08T14:01:29.020 回答
2

Redis 不对键进行排序,但它确实具有列表/集合,可让您按顺序检索项目。在不知道为什么要顺序访问的情况下,很难确定这是否可行,但是对于 NoSQL,您通常需要对所使用的数据结构进行一些不同的思考。

于 2010-12-09T00:09:35.593 回答
1

我建议京都内阁,它具有内存功能和顺序访问。

编辑:stl地图有什么问题?

于 2010-12-08T13:02:35.173 回答