Comment dois-je utiliser Redis comme un cache pour SQL Server?
J'ai eu quelques données tabulaires en raison de problèmes sans rapport s'avère trop lent pour sortir de SQL Server en temps réel. Comme nous obtenons plus d'utilisateurs, ce n'est qu'empirer les choses, alors je suis la pensée de l'utilisation de Redis comme un front-end cache pour stocker les utilisateurs de tableaux paginable de données.
Ces données pourraient devenir obsolètes après environ 10 minutes, après quoi je voudrais obtenir le record de nouveau et de mettre en dans le Redis.
L'application est un .NET MVC app. Je pensais que lorsque l'utilisateur ouvre une session dans l'application, les données sont extraites de la base de données (prend environ 10 secondes) et mettre dans le Redis prêtes à être consommées par le MVC client. Je voudrais mettre une date d'expiration sur les données et ensuite lorsqu'il devient obsolète, il obtiendra refetched à partir de la base de données SQL Server.
Tout cela est-il raisonnable? Je suis un peu peu peur que l':
- L'utilisateur pourrait accéder à la page avant que les données soient dans le Redis
- Si Redis tombe en panne ou ne pas répondre, j'ai besoin de s'assurer que le ViewModel peut se remplir directement à partir de SQL SErver sans Redis être là
merci je vais jeter un oeil
pouvez-vous ajouter cela comme une réponse que je souhaite l'accepter, c'est la solution parfaite que je cherchais
Avez-vous envisagé de mettre en œuvre le cache-côté motif?
Aussi, êtes-vous à l'aide de Entity Framework? Vous pouvez envisager d'utiliser EntityFramework.Étendu. C'est par défaut de mécanisme de mise en cache vous permettra de mettre en cache des données localement sur votre serveur d'applications web, ce qui est assez rapide. Toutefois, si vous voulez être en mesure à l'horizontale à l'échelle de votre solution, vous pouvez développer une coutume de la mise en cache du fournisseur pour qu'il l'utilise. github.com/loresoft/EntityFramework.Extended
OriginalL'auteur Victoria | 2012-01-30
Vous devez vous connecter pour publier un commentaire.
Je vais aller pour le Service de la pile redis mise en œuvre, ici sont tous les détails nécessaires. Redis est particulièrement bon quand on fait de la mise en cache dans le comparer à d'autres nosql. Mais si vous avez de la lecture à haute - écrire l'application, j'insisterai sur le fait de vérifier la base de données nosql comme le combiné de la base de données avec SQL server. Qui va l'aider en cas d'évolutivité.
S'il vous plaît laissez-moi savoir si des précisions nécessaires. Vous avez juste besoin d'incendie nuget commande et vous êtes presque en place et en cours d'exécution.
OriginalL'auteur kunjee
Vous pouvez utiliser quelque chose comme MemcacheD pour stocker les pages mises en cache dans la mémoire.
Vous pouvez définir une durée de validité de 10 minutes sur un objet mis en cache. Après que le cache sera automatiquement supprimer l'objet.
Votre référentiel aurait à faire ces étapes:
1. Vérifier le cache pour les données que vous voulez, si c'est là, un grand usage, il
2. Si la mise en cache de données n'existe pas, passez à SQL server pour récupérer
3. Mise à jour le cache avec les données renvoyées à partir de SQL server
J'ai utilisé le Enyim client avant. Il fonctionne très bien. https://github.com/enyim/EnyimMemcached
Je pourrais aussi utiliser quelque chose comme le Quartz pour planifier une tâche d'arrière-plan à premier le cache. http://quartznet.sourceforge.net/
OriginalL'auteur Jeremy Bell