2017-09-13 9 views
0

Je ne peux pas décider si utiliser InProc ou Redis pour stocker la session utilisateur + un peu de données supplémentaires (nom d'utilisateur, email ... etc) dans une application web haute performanceStockage de session dans InProc vs Redis (Asp.Net MVC 5) avec l'évolutivité à l'esprit

Alors quels sont les avantages et les inconvénients des deux? Parce que l'option Redis aurait l'inconvénient d'utiliser des connexions HTTP - la latence du réseau et la consommation de connexions TCP que le protocole HTTP utilise.

Aussi, serait InProc tenir l'avenir de l'application de l'utilisation de travailleurs IIS multiples en place ou sur des serveurs différents (en utilisant l'équilibrage de charge)

Note: Si j'utiliser Redis, j'injecter l'état de la session par une action personnalisée Attribuer à une propriété dans le contrôleur.

Répondre

1

Dans un scénario de batterie de serveurs Web, une requête peut être envoyée à n'importe quel processus de travail de la batterie de serveurs Web. L'utilisation du magasin d'état de session dans un proc dans un tel cas peut entraîner une perte de données si différentes demandes pour la même session sont servies par différents processus de travail. Cependant, si vous n'utilisez qu'un seul serveur Web, le fournisseur d'état de session in-proc doit être le plus rapide car il n'y a pas de latence réseau supplémentaire. Redis fonctionne comme un cache distribué et le fournisseur d'état de session Redis fonctionne bien pour les scénarios de batterie de serveurs Web car tous les différents processus de travail de la batterie de serveurs Web communiquent avec l'instance Redis unique. Le fait de placer physiquement l'instance Redis près des instances de la ferme Web peut aider à réduire les latences dans une certaine mesure.