Sto usando MemoryCache
per memorizzare coppie chiave/valore nella mia applicazione MVC .Net.C# MemoryCache per 2 diversi tipi di chiavi?
Ci sono 2 scopi principali che sto usando MemoryCache
. Uno è quello di memorizzare le sessioni per gli ID utente, e un altro è quello di memorizzare le costanti (questo è solo un esempio) Le chiavi potrebbero teoricamente essere le stesse in entrambi i casi, quindi voglio separarle 2.
Sto pensando di 2 o 3 modi. Qual è il modo migliore? O c'è un'alternativa migliore?
Ogni chiave nella cache che viene inserito da un namespace.
"user_session: 1", "user_session: 2"
"costanti: 1", "costanti: 2"Uso dizionari nidificate come chiavi.
Ci sarà una chiave "user_sessions" il cui valore sarà un dizionario che associa gli ID all'oggetto di sessione. Ci sarà una chiave "costanti" il cui valore sarà un dizionario.
Ogni "spazio dei nomi" ottiene la propria istanza di MemoryCache.
Lo svantaggio con # 2 è che quando voglio ottenere il valore appartenente ad un ID utente, ho bisogno di ottenere prima il dizionario, quindi ottenere il valore per una chiave in quel dizionario. Il che significa che ho bisogno di memorizzare il dizionario in memoria.
IE:
Dictionary<string, string> userSessions = MemoryCache.Default["user_sessions"]
object session = userSessions.get("1");
Perché è necessario memorizzare le costanti in un dizionario? Non potresti semplicemente usare le costanti? – Kenneth
@Kenneth stavo usando questo come esempio. La domanda continua: come utilizzare MemoryCache per 2 diversi tipi di chiavi? –
Utilizzo 1. Non è necessario preoccuparsi di problemi di concorrenza con l'accesso al dizionario contenuto suggerito come opzione in 2. Questa risposta è utile: http://stackoverflow.com/a/13425322/112196 –