c++ - 寻找具有顺序访问功能的独立内存数据服务器

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

<分区>

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

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

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

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

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

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

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

编辑: 看来我们将追求 mysql 选项,我们有一个合理的报价,它也将作为我们的主要(持久性)有用) D B。感谢所有的回答,通常很难只选择一个。

最佳答案

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

它是公共(public)领域,因此不存在许可问题

关于c++ - 寻找具有顺序访问功能的独立内存数据服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4387707/

相关文章:

mysql - 什么时候应该使用连接表与 Ruby on Rails 数据库中的表中的 id

c - 多线程从一个管道读取

linux - linux 中 sed 的输出不会写入文件

c++ - 需要帮助理解返回引用的函数

c++ - 在 C++ 中,是否允许删除 list<Pointer>::unique 中的对象

c++ - Qt-使用getline函数

c++ - ZeroMQ:重新绑定(bind)套接字时地址正在使用错误

python - 如果我从 Django 查询集中删除行然后再次过滤怎么办?

mysql - 定期获取 mySql 数据库的备份

c - fscanf 和链表的 char *