寻找具有顺序访问的独立内存数据服务器

时间:2010-12-08 12:59:45

标签: c++ database linux nosql in-memory-database

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

  1. 独立服务器:将在与客户端相同的计算机上运行,​​因此任何类型的IPC都可以。
  2. 顺序访问get next/previous key
  3. 每条记录的两个键(字符串):一种双向地图,实际上
  4. 内存中 :应该有完全没有持久性的选项
  5. RAM磁盘/ tmpfs解决方案是不可取的
  6. SQL / ODBC是一个选项,但不是必需的
  7. 商品正常,如果OEM许可证价格合理
  8. 到目前为止,我们已经考虑了以下选项,但还没有令人满意的解决方案:

    • mysql :满足所有要求,但现在回答OEM许可证需要多少费用
    • memcached,cassandra :没有顺序访问,根据在线文档
    • Redis :似乎是一个不错的工具,但我再次看不到规范中的get nex/prev
    • Postgres :无法在Linux / ODBC上运行良好

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

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

    很高兴得到你的建议。谢谢!

    编辑:我们似乎正在追求 mysql 选项,我们有合理的价格优惠,它也将作为我们的主要用途(持久性) ) D B。感谢所有答案,通常很难只选择一个。

4 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:2)

Redis不对键进行排序,但它确实有列表/集合,允许您按顺序检索项目。如果不知道为什么要进行顺序访问,很难确定这是否有用,但是对于NoSQL,你经常需要对你使用的数据结构有所不同。

答案 3 :(得分:1)

我建议使用Kyoto Cabinet,它具有内存功能和顺序访问功能。

编辑: stl map有什么问题?