L'utilisation de plusieurs instances de MemoryCache

J'aimerais ajouter des capacités de mise en cache de mon application en utilisant le System.Runtime.Caching espace de noms, et aurait probablement besoin d'utiliser la mise en cache dans plusieurs endroits et dans différents contextes.
Pour ce faire, je veux utiliser plusieurs MemoryCache instances.

Cependant, je vois ici que l'utilisation de plus d'une instance de MemoryCache est déconseillé:

MemoryCache n'est pas un singleton, mais vous ne devez pas créer un peu ou potentiellement un seul MemoryCache instance et le code qui met en cache les articles doivent utiliser ces instances.

Comment plusieurs MemoryCache cas nuire à ma demande?
Je trouve cela un peu bizarre parce que il me semble que l'utilisation de plusieurs caches dans une application est un joli scénario commun.

EDIT: Plus précisément, j'ai une classe qui doit garder un cache pour chaque instance. Devrais-je éviter en utilisant MemoryCache et chercher une autre solution de mise en cache? Est l'aide de MemoryCache dans cette situation, considérée comme mauvaise, et si oui, pourquoi?

  • Quelle est la différence entre un simple cache et de nombreuses caches? Après tout, ils vont tous faire la même chose.
  • D'une part, je n'aurez pas à vous soucier de la clé de collisions autant. Aussi, je crois que c'est plus organisé et plus facile à corriger que d'avoir un objet qui contient tout ce que l'application des caches.
  • Cela signifie que vous ne devez pas créer de nombreuses caches qui ne cache la même chose. Il est beaucoup mieux d'cache autant que possible par une centrale de cache. Mais il est parfaitement ok pour créer de nombreuses caches qui ne cache différentes choses.
  • Si vous êtes intéressé par un cache distribué, vous pourriez en apprendre sur le Windows de la Version en Cache. Vient de Gagner 2008 et offre un plus puissant système de cache qui exploite des serveurs externes. Voici un article à ce sujet hanselman.com/blog/...
  • Je me sers de plusieurs de trop. Généralement, un par type. Ce serait merveilleux si la documentation qui a dit "tu devrais..." dis "tu devrais... parce que...".
  • Aussi, parfois, j'ai envie d'effacer la cache d'un contexte spécifique, mais pas les autres, ce qui serait beaucoup plus facile si le contexte avait dédié cache (c'est comment je me suis retrouvé à cette question de toute façon!)
  • #WhenYouWantSomethingThatYouAssumedwaseasybuttheymakeithardandthenpeopleseemtohavenocluewhyyouwantit
  • Je suppose que le cadre n'est pas toujours de tout. LazyCache semble prometteur : hanselman.com/blog/...

InformationsquelleAutor Adi Lester | 2011-12-11