Question

Je prévois de développer un service web, je dois utiliser dans la mémoire cache, ce que les différents cadres de mise en cache sont disponibles là-bas pour .NET, j'ai utilisé bloc Microsoft Enterprise Library Cache et également évalué NCache pour l'environnement distribué.

Mon exigence principale est la fiabilité des données mises en cache, je pensais à l'aide Enterprise Lib bloc cache magasin de données DB pour la persistance dans le cas où le processus de travail se redémarré.

Toutes les options ??

Était-ce utile?

La solution

Votre cache est un magasin de données volatiles, vous devez écrire votre logiciel afin qu'il ATTEND que le cache est indisponible. par exemple.

public DtoThing GetSomeData(string parameters)
{
   if (<check cache for data> == <not there>)
     return <get data from persistent store>
   else
     return <get data from cache>
}

Si vous utilisez une base de données en tant que magasin de support pour le cache, vous avez fondamentalement juste troqué tous les avantages de l'utilisation d'un cache. Lorsque vous dites que le cache doit être fiable, vous dites que les mises à jour doivent être cohérentes ou que les données doivent être toujours dans le cache? Si l'ancien, il est facile de faire en sorte que cela arrive aussi longtemps que vous écrivez votre logiciel de telle manière qu'il y est seulement jamais un chemin de mettre à jour les données, puis cette voie peut invalider le cache lors de la réalisation avec succès son écriture à la persistance magasin de données.

Autres conseils

Vous pouvez pas commander GigaSpaces XAP.NET qui est entièrement distribués et de transaction dans la grille de données de mémoire qui peut servir de cache parmi beaucoup d'autres choses. Il peut également être votre serveur d'applications réelles qui vous permet de déployer votre application en mode distribué avec le cache distribué. Il est très disponible, la guérison de soi et la gestion réseau, que vous pouvez faire évoluer et à la demande.

Disclaimer - Je travaille pour GigaSpaces

.

J'ai l'expérience en utilisant Enterprise Library Cache bloc de Microsoft et il a bien fonctionné pour moi. La configuration EntLib peut être un peu bavard parfois, mais il fait le travail. Y at-il une raison particulière que vous cherchez autre chose?

Il y a beaucoup de solutions possibles pour ce type de question. Vous avez parlé de regarder NCache; si vous avez le temps, consultez Oracle Coherence, qui est le produit que NCache a tenté de copier; -)

Ma suggestion, cependant, est que si vous avez besoin des avantages d'un cache distribué, qu'il est beaucoup plus simple d'utiliser simplement un seul processus, le cache en mémoire.

Et juste au cas où vous êtes curieux, une discussion au début des origines de ncache: http://www.theserverside.com/news/thread.tss?thread_id=43950

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top