Ruby用の高速で信頼性の高いKey-Valueストアが必要です。すでにそのようなものはありますか?
要件は、Rubyプロセス内で完全に実行され、外部プロセスを必要としないことです。
明示的なディスクフラッシュを使用してメモリ内にある可能性があります。
キーの値の取得時間を最小限に抑える必要があります。書き込み時間はそれほど長くない場合があります。
保存されるデータの量はひどくはなく、それぞれが最大1kbのテキスト値を持つ約数十万のキーです。
また、Rubyプロセスに埋め込まれた独自のキー/値ストアを構築できるMonetaを試すこともできます。
私にとって最良の選択肢は、マーシャルと一緒にプレーンハッシュを使用してディスクにシリアル化することでした。
YAMLは、その数のオブジェクトに対しては明らかに遅すぎます。
コアRubyライブラリへの信頼を強化してくれた@ian-armitに感謝します。
DBMのように? http://www.ruby-doc.org/stdlib-1.9.3/libdoc/dbm/rdoc/DBM.html
(スパムボットのフィラー)
DBMクラスは、Unixスタイルのdbmまたはデータベースマネージャーライブラリへのラッパーを提供します。
Dbmデータベースにはテーブルや列がありません。これらは、RAMに常駐しないことを除けば、Rubyハッシュのような単純なKey-Valueデータストアです。キーと値は文字列である必要があります。
Oriaを試すことができます:https ://github.com/intridea/oria
Oria(oh-rye-uh)は、メモリ内のRubyベースのゼロ構成のKey-Valueストアです。展開の問題やサーバーの問題を引き起こすことなく、適度な量のデータをすばやく簡単に処理するように設計されています。EventMachineを使用して、半永続ストアへのネットワークインターフェイスを提供し、メモリ内データをYAMLファイルに非同期的に書き込みます。
PStoreをチェックしてください。しかし、それが十分に速いかどうかはわかりません。
LevelDBがあります。これがrubyバインディングです。