私は、潜在的に数千から数千のメッセージ(おそらく何百万)を取得する可能性のあるアプリケーションを開発しています。そして、私は各メッセージがIDを持っているので、簡単な検索のためにこれらのメッセージをハッシュテーブルに保存したいと思います。これは良いアイデアですか?そうでない場合は、これについて最善のデータ構造や方法がありますか?ありがとうございました。Hashtableに保存
0
A
答えて
1
これは良い考えですか?
インメモリデータ構造内のデータの無制限量を維持することは悪い考えです。最終的にメモリが足りなくなり、アプリケーションがクラッシュします。
古い「メッセージ」を破棄して、アプリケーションが必要とするメモリの量を適切に設定できる場合は、これが実行可能なソリューションになる可能性があります。コメントは指摘するよう
はしかし、それはそこにもあるとどのくらいの速アクセス本当にどのくらいのデータに応じて、より良いかもしれない(エトセトラ分散形メモリキャッシュ、SQLデータベース、NoSQLのデータベース、)他のソリューションがあります必要があります。
0
マップの使用(データはメインメモリに格納されます)はシンプルですが、データの有効期限、クラスタリングなどのロジックを実装し、再構築する必要があるため、最も好ましくなく非現実的なオプションにする必要があります。 。
キャッシングフレームワークを使用すると(データはメインメモリに保存されます)、これは、データのサイズの大きさとデータがキャッシュに存在する必要がある時間の長さ(つまり、データこのオプションはデータサイズをJVMヒープスペースの最大サイズに制限します。
データベースを使用すると(ディスクスペースにデータが保存されます)、これは数百万のデータを保持するのに理想的なオプションですが、メモリ操作に比べてディスク操作に時間がかかります。
関連する問題
- 1. HashTableをusersettingsに保存するには?
- 2. ファイルをHashTableに保存する
- 3. データをHashtableに保存して計算する
- 4. HashTableプロパティを持つオブジェクトをシリアル化してCouchBaseに保存します
- 5. C#Hashtableに値が保持されない
- 6. Zend HashTable SIGSEGV
- 7. Export-CSVのHashtable
- 8. Java HashTable LoadFactor
- 9. HashTableと配列
- 10. HashTableのロード先
- 11. HashTable並行性
- 12. Boost Intrusive Hashtable
- 13. Hashtable/Map:where to start
- 14. HashTableのIEnumerator?
- 15. J2MEのHashTable効率
- 16. "Hashtable" for Python Twitter Crawler
- 17. HashTableからJTableへ?
- 18. Javaイテレーション:HashtableとHashMap
- 19. .Net HashtableとJava HashtableとHashMapの相違点
- 20. データベースに保存
- 21. ローカルドライブに保存
- 22. %USERPROFILE%に保存
- 23. SQL Server 2008 R2のHashtable
- 24. Golly HashTable&GCのしくみ
- 25. Hashtableの出力列タイトル
- 26. MSBuildタスクのHashtable/Dictionaryパラメータ
- 27. Hashtable /二重リンクリストのメモリリーク
- 28. HashTableトップ20カウントのアイデア
- 29. EASTLとSGI Hashtableの実装
- 30. キーベースでHashtableをソートする?
インメモリキャッシュの実装を調べましたか?既に利用可能なAPIがある場合、なぜホイールを再発明するのですか? – kosa
データベースがうまくいく - もっときれいにスケールアップするもの? –
Eelsのように、データベースははるかに良いアイデアのように聞こえます。また、IDで行く能力だけでなく、ユーザーID、メッセージの内容などを調べるためのより良い方法を提供するのに役立ちます。 – user123