Redis adossés à des ASP.NET SessionState fournisseur

Je suis en train de développer un ASP.NET SessionState fournisseur personnalisé qui est soutenu par le Redis à l'aide de Booksleeve. Redis semblait être un ajustement parfait pour SessionState (si vous devez l'utiliser) car:

  • Redis pouvez stocker durablement comme un SGBDR, cependant il est beaucoup plus rapide.
  • Une Clé/Valeur de la banque de données s'adapte à l'interface de SessionState.
  • Puisque les données ne sont pas stockées dans le processus (comme la Session par défaut du fournisseur), SessionState peut vivre en dehors du serveur web redémarre, les accidents, etc.
  • Redis est facile d'éclat à l'horizontale si cela devient une nécessité.

Donc, je me demande si ce sera utile à quelqu'un, puisque nous (mon entreprise) envisagent open source sur GitHub. Pensées?

Mise à JOUR:


Je l'ai fait sortir une première version de ce hier: https://github.com/angieslist/AL-Redis/blob/master/AngiesList.Redis/RedisSessionStateStore.cs

  • Serait très utile - en fait, j'ai commencé à enquêter sur moi-même pas trop longtemps, alors je serais certainement contribuer à ce projet un peu. Je recommande fortement que si vous plongez dans cette, vous générez sur le dessus de la ServiceStack ICacheClient interface. Redis est l'un des rares inclus cache clients, y compris un processus en mémoire cache qui serait formidable pour le débogage.
  • Si c'est utile pour vous, il sera utile à d'autres. Le faire.
  • Jusqu'à présent j'ai coincé avec Booksleeve comme le Redis client lib. J'ai d'abord regardé l'aide de SS ICacheClient, mais j'ai rapidement réalisé que le Redis hachage de type de données est la solution idéale pour SessionData. J'ai donc besoin d'un niveau inférieur, Redis-spécifiques du client. Aussi, depuis que j'ai besoin de faire, par HttpRequest de verrouillage afin de correctement mettre en œuvre les mêmes fonctionnalités que le haut-ASP.NET Session fournisseurs, j'ai pensé que je devrais rester plus près du métal. Finalement, cependant, je voudrais faire de verrouillage en option configurable.
  • Surpris de cette question n'était pas immédiatement fermé de ne pas constructif par les mods...(la grande idée de projet btw)
  • Je ne prévoyez sur l'utilisation de ServiceStack.Texte pour fournir une gamme de choix pour la sérialisation. Je reçois une sérialisation native déjà à l'aide de SessionStateItemCollection.Désérialiser/Sérialiser. Ensuite, je peux ajouter JSON et JSV à l'aide de SS.Le texte, ainsi que d'une interface pour mettre en œuvre afin que n'importe qui peut créer leur propre sérialiseur.
  • Curieusement j'ai l'intention de parler de ce sujet demain à Øredev 2011. Nous (SE) de ne pas ajouter un fournisseur d'état de session, tout simplement parce que nous n'avons pas utiliser les fonctions intégrées d'état de la session de modèle, mais ce serait une chose très pratique pour ajouter. Bien sûr, j'ai aussi quelques idées sur la candidat sérialiseurs ;p
  • Marc, sur ma TODO est enfichable en charge de différents sérialiseurs. Je suis en train de penser que built-ins inclure le JSON de @demisbellot et votre Protobuf
  • Salut, quand tu vas ajouter un téléchargement pour ce projet?
  • ne pas utiliser la fonction intégrée de session-modèle de l'état". Kevin a écrit dans meta.stackexchange.com/a/69172/51 qui "cache local contient des choses comme les sessions de l'utilisateur. Si vous utilisez les sessions et maintenant, vous n'avez pas?
  • avez-vous testé avec le partage de la session sur plusieurs serveurs (et si oui, avez-vous dû faire quelque chose de spécial afin de lui permettre d'associer la session de l'utilisateur stockées sur le redis avec le même utilisateur sur plusieurs serveurs?)
  • vous ne comprenez pas; nous faisons limited (petit) utilisation de la notion de l'état de session, mais nous n'utiliserons pas l'ASP.NET session-modèle de l'état pour ce faire.
  • Conservez-vous vos conceptuel de l'état de session (par utilisateur) dans le Redis? Ou sur le ASP.net le cache de l'Application (sur le serveur lui-même)?
  • comme il arrive pas, mais c'est simplement parce que notre état de session d'utilisation de la pré-dates de nos redis utilisation, et nous n'avons pas eu besoin de la revoir. Redis ferait parfaitement sensée et raisonnable de l'état de session magasin bien mieux qu'un RDMBS, par exemple.
  • Est-ce dans nuget? Je vois qu'il ya une utilisation de ss, mais j'ai comme l'utilisation de booksleve à cause de cela étant asyn
  • Je pense que ce projet nécessite une mise à jour parce que certaines des méthodes de Booksleeve est obsolète, et les suggestions sont à l'aide de Stings API.
  • Pour tous ceux qui lisent ceci, il ressemble à Microsoft publie leur propre Redis fournisseur d'État de Session. Voir la prelease ici

InformationsquelleAutor NathanD | 2011-11-09