Ruby服务器的推荐存储平台/引擎

Ruby服务器的推荐存储平台/引擎,ruby,database,persistence,Ruby,Database,Persistence,全部, 使用Ruby在基于文本的多人游戏的定制TCP/IP服务器上工作。需要找到一个持久化我的Ruby对象的系统,我很想得到一些建议 服务器将管理不超过1GB的数据,由于这是一个可管理的数字,我希望找到一个持久化系统,它允许我将所有内容都保存在内存中,并且只在我这样说时将其写入磁盘(称为“保存事件”-这些事件已经发生,因为其他不相关的原因,所以我可以连接到这些事件) 理想情况下,具有强大的、类似于ActiveRecord的Ruby界面的东西会很棒,包括查询/搜索等 我考虑过一些事情 MySQL

全部,

使用Ruby在基于文本的多人游戏的定制TCP/IP服务器上工作。需要找到一个持久化我的Ruby对象的系统,我很想得到一些建议

服务器将管理不超过1GB的数据,由于这是一个可管理的数字,我希望找到一个持久化系统,它允许我将所有内容都保存在内存中,并且只在我这样说时将其写入磁盘(称为“保存事件”-这些事件已经发生,因为其他不相关的原因,所以我可以连接到这些事件)

理想情况下,具有强大的、类似于ActiveRecord的Ruby界面的东西会很棒,包括查询/搜索等

我考虑过一些事情

  • MySQL使用内存表(优点:非常熟悉使用ActiveRecord,缺点:并非所有数据都可以用关系系统轻松表示,我必须编写自己的系统来保存表并在重新启动时重新构建它们,除非已经存在)
  • MongoDB(优点:希望更好地了解它,我认为我们的数据非常适合基于文档的系统,缺点:不熟悉它如何利用内存和磁盘来存储数据,或者我如何触发“持久化所有内容”事件)
  • Redis(优点:似乎有我正在寻找的内存模型,缺点:根本不熟悉它或它的任何Ruby接口,也不确定如何将数据转换为纯键值)

我猜有一个优雅的解决方案;MunGDB很可能是这样的,如果它以我描述的方式大量使用内存。

< P>如果你的数据已经是关系的(或者你宁愿走下关系路径),你应该考虑,它将很容易安装和快速,因为它一直在内存中运行。

< P>如果你的数据已经是关系的(或者你宁愿走下关系路径)你应该考虑,将很容易安装和快速,因为它一直在内存中运行。

< P>MangGDB使用内存映射存储引擎,默认情况下每60s刷新一次磁盘。您可以配置此间隔,并且可以使用fsync命令刷新任何挂起的磁盘写入


将MongoDB与Mongoid gem结合使用可能是一个不错的选择。Mongoid使用ActiveModel,因此工作原理与ActiveRecord非常相似。

MongoDB使用内存映射存储引擎,默认情况下每60秒刷新一次磁盘。您可以配置此间隔,并且可以使用fsync命令刷新任何挂起的磁盘写入

将MongoDB与Mongoid gem结合使用可能是一个不错的选择。Mongoid使用ActiveModel,因此工作原理与ActiveRecord非常相似