5

次の特性を持つインメモリ データ構造/DBサーバーが必要です。

  1. スタンドアロン サーバー: クライアントと同じマシンで実行されるため、どのような種類の IPC でも問題ありません
  2. 順次アクセス:get next/previous key
  3. レコードごとに 2 つのキー (文字列) : 実際には一種の双方向マップ
  4. インメモリのみ: まったく永続化しないオプションが必要です
  5. RAM ディスク/tmpfs ソリューションは望ましくない
  6. SQL/ODBC はオプションですが、必須ではありません
  7. 商用製品OK、OEMライセンス価格が妥当なら

これまでのところ、次のオプションを検討しましたが、まだ満足のいく解決策はありません。

  • mysql : すべての要件に回答しますが、OEM ライセンスの費用についてはまだ回答しています
  • memcached、cassandra : オンライン ドキュメントによると、シーケンシャル アクセスなし
  • Redisget nex/prev : 良いツールのように思えますが、仕様に含まれていません。
  • Postgres : Linux/ODBC でうまく動作しませんでした

すべての nosql インメモリ DB は、キー、ハッシュ テーブル スタイルによる直接アクセスのみを提供しているようです。Apache Derby はまだチェックしていません。

Linux で実行し、クライアントは C++ です。

ご提案をお待ちしております。ありがとう!

編集: mysqlオプションを追求しているようです。手頃な価格のオファーがあり、メインの (永続的な) DB としても役立ちます。すべての回答に感謝します。いつものように、1 つだけを選択するのは困難です。

4

4 に答える 4

3

データベース ファイル名を ":memory:" に設定した SQLite を見てみましょう。これにより、アプリケーションを閉じると存在しなくなるインメモリ データベースが作成されます。

パブリックドメインなので、ライセンスに問題はありません

于 2010-12-08T13:18:49.293 に答える
2

Redisはキーを並べ替えませんが、アイテムを順番に取得できるリスト/セットがあります。シーケンシャルアクセスが必要な理由がわからなければ、それが機能するかどうかを確実に知ることは困難ですが、NoSQLでは、使用するデータ構造について少し異なる考え方をする必要があります。

于 2010-12-09T00:09:35.593 に答える
2

FastDBは問題なく動作するはずです。インメモリ構成と共有アクセスをサポートします。

于 2010-12-08T14:01:29.020 に答える
1

インメモリ機能とシーケンシャルアクセスを備えた京都キャビネットをお勧めします。

編集: stl マップの何が問題になっていますか?

于 2010-12-08T13:02:35.173 に答える