2013-02-12 3 views
1

J'utilise AppFabric pour gérer les capacités de mise en cache de mon site Web. Je souhaite que le cache des produits soit mis à jour dès qu'une modification a été apportée à la table des produits dans ma base de données. Je l'ai lu la mise en œuvre d'une lecture à travers, mais à la lecture sur I trouvé:Mise à jour du cache à la mise à jour de la table de base de données

Read: Called when a cache client requests a cached item that does not currently exist in the associated cache. 

Cela ne semble pas que cela va résoudre mon problème que je voudrais que le cache de produits pour être mis à jour une fois par changement la table a été découverte, elle n'existera pas nécessairement dans le cache en premier lieu. Est-il possible de le faire en utilisant les capacités AppFabric ?

Répondre

0

Fondamentalement, vous voulez simplement avoir un mécanisme SqlCacheDependency. Dans le passé, c'était très utile pour le cache en mémoire. Toutefois, il n'existe aucun support dans la mise en cache d'AppFabric pour le mécanisme SqlCacheDependency (ou en fait pour tout type de dépendance). Vous devez construire votre propre ...

En outre, avec un fournisseur de services de lecture, le cache détecte l'élément manquant et appelle le fournisseur pour effectuer le chargement de données. Si vous ajoutez votre article avec une expiration de 30 minutes, le fournisseur n'essaiera jamais de le recharger avant son expiration.

Éventuellement, vous pouvez essayer de mettre à jour le cache avec un fournisseur Write-Behind. Il mettra à jour périodiquement votre base de données.

+0

L'écriture derrière ne met pas à jour le cache. L'écriture derrière met à jour votre magasin de données en fonction des mises à jour du cache. La lecture intermédiaire détecte l'élément de cache manquant s'il n'y figure pas en premier lieu. C'est mon problème. – Neeta

+0

oui, mais travailler avec un cache distribué implique de travailler avec des données périmées. Utiliser un fournisseur ou ne pas vous permettre de choisir où les données périmées seront localisées: sur le cache (en raison de l'expiration de l'élément de données) ou dans la base de données (car le fournisseur vous persètera périodiquement). Conception WebFarms et IS est un peu différent d'un site web vertical classique (serveur web + DB) – Cybermaxs

Questions connexes