Ce sont les éléments que je considère pour le sujet de la mise en cache :
MemCached Win32 Vélocité Cache .net Enterprise Library Caching Application Block
MemCached Win32 : Jusqu'à récemment, j'ai utilisé MemCached Win32. C'est un peu comme une ferme web (plusieurs serveurs servant le même contenu pour une haute disponibilité) mais c'est une ferme de cache. Cela signifie que vous pouvez l'installer localement sur votre serveur web dans un premier temps si vous n'avez pas les ressources pour aller plus loin. Ensuite, au fur et à mesure que vous progressez, vous pouvez évoluer horizontalement (plus de serveurs) ou verticalement (plus de matériel). Il s'agit d'un produit qui a été porté à partir du MemCached original pour fonctionner sous Windows. Ce produit a été largement utilisé sur des sites à très fort trafic. http://lineofthought.com/tools/memcached
Vélocité : Il s'agit de la réponse de Microsoft à des produits tels que MemCached. MemCached est sorti depuis un certain temps, Velocity est en mode CTP. Je dois dire que d'après ce que j'ai lu jusqu'à présent, ce produit va certainement me faire tourner la tête une fois qu'il sera sorti. Mais je ne peux pas me résoudre à lancer de gros projets de production sur un produit CTP sans aucune expérience. J'ai tout de même commencé à jouer avec, car une fois qu'il aura pris de l'ampleur, MemCached ne sera même plus comparable pour ceux qui sont enfermés dans le monde Windows ! http://blogs.msdn.com/velocity/
.NET Cache : Il n'y a aucune raison de négliger le cache standard de .NET. Il est intégré et prêt à l'emploi, gratuitement et sans aucune configuration (majeure) requise. Il offre de la flexibilité en proposant des mécanismes pour stocker des éléments en mémoire locale, dans un serveur d'état UNIQUE ou dans une base de données centralisée. Velocity intervient lorsque vous avez besoin de plus d'un serveur à état unique (cache en mémoire) et que vous ne voulez pas utiliser une base de données lente pour stocker votre cache.
Bloc d'applications d'entreprise : Je me tiens à l'écart de tous les blocs d'applications d'entreprise. Ce sont des frameworks lourds qui offrent plus que ce dont j'ai généralement besoin ! Tant que vous n'oubliez pas d'envelopper tout ce qui touche au code qui n'est pas le vôtre et que vous suivez des règles simples de codage, préférez n'importe quelle autre méthode à celle-ci ! (Ce n'est que mon opinion, bien sûr - MySpace tire le meilleur parti possible des Enterprise Application Blocks).
Vous ne devez pas choisir à l'avance ! Je crée généralement un wrapper de cache avec lequel je communique dans mon code pour des méthodes telles que Get, Set, Exists, Remove, ListKeys, etc. Il pointe ensuite vers un niveau sous-jacent d'abstraction de cache qui peut pointer vers MemCached, Velocity ou le cache .NET. J'utilise StructureMap (ou je choisis un autre conteneur IoC) pour injecter la forme de cache que je veux utiliser pour un environnement donné. Dans ma boîte de développement locale, je peux utiliser le cache .NET dans la session. En production, j'utilise généralement MemCached Win 32. Mais quelle que soit la façon dont il est configuré, vous pouvez facilement intervertir les choses pour essayer chaque système et voir ce qui fonctionne le mieux pour vous. Vous devez simplement vous assurer que votre application en sait le moins possible sur la façon dont les choses sont mises en cache ! Une fois que cette couche d'abstraction est en place, vous pouvez alors faire des choses comme exécuter un algorithme de compression (gzip) pour toutes les données qui entrent et sortent du cache, ce qui vous permettrait de stocker 10 fois la quantité de données dans le cache. - de manière transparente .
J'aborde les thèmes du cache .NET, de MemCached Win32, de StructureMap et des abstractions appropriées dans mon livre, si cela vous intéresse !
ASP.NET 3.5 Réseaux sociaux ( http://www.amazon.com/ASP-NET-3-5-Social-Networking-Enterprise-ready/dp/1847194788/ref=sr_1_1?ie=UTF8&s=books&qid=1225408005&sr=8-1 ) Andrew Siemer www.andrewsiemer.com blog.andrewsiemer.com www.socialnetworkingin.net
Mise à jour Modification du lien qui répertorie les sites utilisant memcached. Merci à David d'avoir remarqué qu'il était cassé !