しかし、キャッシュキーの最大長は何か考えました。キーができる最大長はありますか?このように物事を保存しようとすると、非常に長いキー名の値で終わる可能性があります。また、最も一般的な検索と最近使用されたものを保持することについては何もしません。
キーの長さは、 "文字列"自体の最大長です。
ここの文書によれば、http://msdn.microsoft.com/en-us/library/system.web.caching.cache.add.aspxによれば、キーはオブジェクトタイプの値を持つ文字列で定義できます。
カスタムオブジェクトに一意のキーでタグを付けることをお勧めします。そのため、キャッシュからクエリを実行すると、カスタムオブジェクトにタグ付けされた複雑な情報を持つカスタムオブジェクトにオブジェクトを追加できます。
EDIT 11072009_1154
私は慎重に再びあなたの条件を読んだ後、私はあなたの目的は、頻繁に文字列を検索しキャッシュすることであることに気づきました。
この例では、頻繁に検索する文字列が「Microsoft Visual Studio 2008 Service Pack 1」である可能性があります。あなたの他の必要な属性を保持するための追加のプロパティを持つカスタムオブジェクトは、私の意見では、これが鍵になるはずです。 キー: "マイクロソフトのVisual Studio 2008のService Pack 1" 値:CustomObjectInstance:CustomObjectInstance.UserLanguage = "英語" とCustomObjectInstance.UserLocalization: "USA"、CustomObjectInstance.UserKeyboardLayout要約する
が、これは一例であるかもしれません= "UK"など。
AFAIK、The Cacheは辞書型のデータ構造を実装しているため、キーは一意のものでなければなりません。あなたのキーが "Microsoft Visual Studio 2008 Service Pack 1 - usergroup2,3,6,17,89"の場合、どのようにしてASp.NET Webアプリケーションからこの特定のキーを一意に識別できますか?私の検索テキストボックスで、私は挿入しませんusergroup2,3,6,17,89
StackOverflowサイトの検索機能のようにも考えてみましょう:ユーザーは共通の検索文字列を挿入します "jqueryの資料を学ぶ"、私の意見では、あなたのキャッシュキーには「jqueryの内容を学ぶ」というエントリが必要です。追加情報については、
EDIT 11072009_1250
感謝。私は、複数のレイヤを強制することによって、追加のソリューションを提供することもできます。なぜなら、すべての情報を1つのキャッシュレイヤに詰め込むのではなく、なぜ追加のレイヤを保存しないのかです。
キャッシュにはキー(文字列)と辞書を再度指す値があることを意味します。
もう1つの解決策は、SQL Serverフルテキストインデックス検索を使用してこれらの機能をプッシュすることです。SQL Serverのフルテキストインデックス検索にはあまり慣れていませんが、この機能を既存のインフラストラクチャ可能なら。
何かと同様に、メモリの制約に遭遇していないことをテストしてテストします。 –