2009-08-28 7 views
0

Salutations camarades earthlings.Mémoires de mise en cache de données dans ASP.NET MVC

Je recherche des méthodes de mise en cache de données récupérées à partir de diverses tables de base de données à l'aide d'ASP.NET MVC. Nous avons une énorme quantité de données qui est seulement mise à jour une fois par jour et à partir de là est statique. Cela peut varier, mais généralement, il s'agit d'une liste d'utilisateurs (employés), de départements, de bureaux, d'endroits où nous sommes, etc.

Ma question est: comment diable récupérez-vous les données en premier lieu? ? Où le stockez-vous? (fichier texte, ou dans le code réel?) Qu'est-ce qui détermine si le cache doit être mis à jour? Je préférerais une approche orientée objet afin que je puisse traiter les lignes de données comme des objets. J'ai déjà un modèle que j'ai créé à la main en utilisant LINQ dans mon application MVC. De plus, comment dois-je vérifier si le cache est sale? La base de données devrait-elle faire quelque chose, ou l'application devrait-elle faire quelque chose? Par exemple, lorsqu'une ligne est mise à jour, un déclencheur de base de données doit-il faire quelque chose pour indiquer qu'une modification a été effectuée (peut-être écrire dans un fichier texte?) Ou mon application doit-elle vérifier rapidement si quelque chose a changé? Je me rends compte qu'il existe de nombreuses méthodes, mais y en a-t-il une recommandée?

Prenez en compte que j'ai aucune expérience avec la mise en cache, alors soyez gentil;)

+3

http://stackoverflow.com/questions/385986/caching-in-asp-net-mvc – grenade

+0

Comme vous l'avez dit vous ne savez rien, la première chose à regarder est le OutputCacheAttribute- http://msdn.microsoft. com/fr-fr/library/system.web.mvc.outputcacheattribute.aspx. Évidemment, cela ne répondra pas à tous vos besoins, mais il pourrait en rencontrer certains. – RichardOD

Répondre

0

Soit maintenir un objet statique (Array, List, hashmap etc.) avec tous les éléments de données pour chaque type de données (un tableau pour les employés, un autre pour les ministères et ainsi de suite), ou utilisez le serveur Cache et stockez ces conteneurs de données à l'intérieur de celui-ci en utilisant votre propre clé définie. L'utilisation du cache est assez simple et le plus souvent utilisé. L'utilisation de l'objet Cache vous permet également de spécifier l'expiration (absolue ou temporisée par le dernier contact sur la touche) et la dépendance du cache (où vous pouvez réinitialiser les éléments de cache basés sur un fichier FS).

Si nécessaire, des scénarios plus complexes peuvent être créés (expiration en limitant la taille du cache sur un élément spécifique par exemple).

0

Comme d'autres mentionnés, vous devriez probablement utiliser Cache et invalider le cache avec une dépendance sur une table.

Une chose que vous devriez vous demander est comment vous avez besoin d'interroger vos données. Si vous avez besoin de la puissance de SQL pour cela, alors le cache pourrait vous gêner. Si vous avez besoin de filtrer, de trier et de trier les données, vous devez décider où vous le faites: en sql ou en linq après avoir obtenu le résultat du cache. La réponse dépend principalement du temps dont vous avez besoin pour exécuter une requête pour un ensemble de résultats.

Questions connexes