La mémoire Cache ou Simultanées Dictionnaire?
Je suis à la recherche pour mettre en œuvre la mise en cache au niveau de la demande pour un Service WCF. Chaque demande pour ce service effectue un grand nombre d'appels de base de données. Penser à plusieurs collecteurs de données. Nous devons permettre à un collecteur de données pour accéder aux informations déjà récupéré par un précédent collecteur de données.
Je cherchais à utiliser le nouveau .Net 4.0 Mémoire cache pour ce, par la création d'une instance spécifique selon la demande.
Est-ce une bonne idée ? Ou devrais-je simplement utiliser un objet Dictionary ?
BTW : La collecte de données va être en parallèle, donc il n'y aura plus de complexité autour de verrouillage, mais je pourrais utiliser les collections simultanées pour cela aussi bien.
- Mise à jour - j'ai décidé d'utiliser la collecte Simultanée parce que les modèles de mon besoin de mieux qu'un système de niveau de la mémoire cache.
- Comme je comprends la MemoryCache la classe , c'est un processus de mémoire cache de niveau..
- ou même AppDomain niveau, n'ai pas testé.
Vous devez vous connecter pour publier un commentaire.
Si vous n'avez pas besoin d'une sorte d'expiration de la logique, je vous recommande d'utiliser les collections simultanées. Vous pouvez facilement mettre en œuvre un entrée unique mécanisme de mise en cache combinant
ConcurrentDictionary
etLazy
classes. Voici un autre lien sur Paresseux et ConcurrentDictionary combinaison.Si vous avez besoin de vos articles à expiration, alors vous feriez mieux d'utiliser le haut-MemoryCache et de mettre en œuvre double-vérifier le verrouillage de modèle de garantie unique d'extraction des éléments du cache. Un prêt à aller de mise en œuvre de la double vérification de verrouillage peut être trouvé dans Verrouillage de modèle pour une utilisation correcte des .NET MemoryCache