MemoryCache
MVC .Net アプリケーションにキーと値のペアを格納するために使用しています。
私が使用している主な目的は2つありますMemoryCache
。1 つはユーザー ID のセッションを格納することで、もう 1 つは定数を格納することです (これは単なる例です)。キーは理論的にはどちらの場合も同じである可能性があるため、これら 2 を分離する何らかの方法が必要です。
2つか3つの方法を考えています。どの方法が優れていますか?または、より良い代替手段はありますか?
キャッシュ内の各キーには、名前空間が先頭に追加されます。
"user_session:1"、"user_session:2"
、"constants:1"、"constants:2"ネストされた辞書をキーとして使用します。
ID をセッション オブジェクトにマップするディクショナリを値とするキー「user_sessions」があります。値がディクショナリになるキー「定数」があります。
各「名前空間」は、独自の MemoryCache インスタンスを取得します。
#2 の欠点は、ユーザー ID に属する値を取得する場合、まず辞書を取得し、次にその辞書のキーの値を取得する必要があることです。つまり、辞書をメモリに保存する必要があります。
いいえ:
Dictionary<string, string> userSessions = MemoryCache.Default["user_sessions"]
object session = userSessions.get("1");