9

Ruby用の高速で信頼性の高いKey-Valueストアが必要です。すでにそのようなものはありますか?

要件は、Rubyプロセス内で完全に実行され、外部プロセスを必要としないことです。
明示的なディスクフラッシュを使用してメモリ内にある可能性があります。
キーの値の取得時間を最小限に抑える必要があります。書き込み時間はそれほど長くない場合があります。
保存されるデータの量はひどくはなく、それぞれが最大1kbのテキスト値を持つ約数十万のキーです。

4

7 に答える 7

5

また、Rubyプロセスに埋め込まれた独自のキー/値ストアを構築できるMonetaを試すこともできます。

于 2012-12-31T03:06:23.673 に答える
5

私にとって最良の選択肢は、マーシャルと一緒にプレーンハッシュを使用してディスクにシリアル化することでした。
YAMLは、その数のオブジェクトに対しては明らかに遅すぎます。
コアRubyライブラリへの信頼を強化してくれた@ian-armitに感謝します。

于 2012-11-14T20:15:59.927 に答える
2

DBMのように? http://www.ruby-doc.org/stdlib-1.9.3/libdoc/dbm/rdoc/DBM.html

(スパムボットのフィラー)

DBMクラスは、Unixスタイルのdbmまたはデータベースマネージャーライブラリへのラッパーを提供します。

Dbmデータベースにはテーブルや列がありません。これらは、RAMに常駐しないことを除けば、Rubyハッシュのような単純なKey-Valueデータストアです。キーと値は文字列である必要があります。

于 2012-11-14T18:49:54.560 に答える
1

Oriaを試すことができます:https ://github.com/intridea/oria

Oria(oh-rye-uh)は、メモリ内のRubyベースのゼロ構成のKey-Valueストアです。展開の問題やサーバーの問題を引き起こすことなく、適度な量のデータをすばやく簡単に処理するように設計されています。EventMachineを使用して、半永続ストアへのネットワークインターフェイスを提供し、メモリ内データをYAMLファイルに非同期的に書き込みます。

于 2012-11-15T05:29:43.530 に答える
0

PStoreをチェックしてください。しかし、それが十分に速いかどうかはわかりません。

于 2013-01-27T19:00:19.500 に答える
0

夜明けは素晴らしい新しいオプションです。データはメモリ内のテーブルに格納されるため、Rubyの優れた機能(それぞれ、フィルター、マップ、リデュースなど)が利用可能であり、pstoreやdbmよりも高速であるように見えます。

詳細については、このブログ投稿を参照してください。

于 2013-02-01T11:49:55.260 に答える
0

LevelDBがあります。これがrubyバインディングです。

于 2013-04-19T03:12:05.320 に答える