Maison  >  Article  >  base de données  >  Comment enregistrer une session dans Redis

Comment enregistrer une session dans Redis

(*-*)浩
(*-*)浩original
2019-11-21 10:12:373287parcourir

Comment enregistrer une session dans Redis

Éléments à prendre en compte lors du stockage de sessions dans Redis :

Comment les données de session sont-elles stockées dans Redis ? Quand la modification de l’attribut de session déclenche-t-elle le stockage ? (Apprentissage recommandé : Tutoriel vidéo Redis)

Implémentation :

Considérant que les données de la session ont une structure de type carte , redis est utilisé Le hachage est plus approprié pour stocker les données de session. Si une seule valeur est utilisée pour stocker les données de session, il y aura un problème d'écrasement de session sans verrouillage. Par conséquent, l'utilisation de hachage pour stocker la session enregistre uniquement les données qui modifient la session. attribut de session à chaque fois, ce qui évite la gestion du verrouillage, meilleures performances.

Si le stockage est déclenché à chaque fois qu'un attribut de session est modifié, plusieurs opérations d'écriture Redis seront déclenchées lorsque davantage d'attributs de session sont modifiés, ce qui aura également un impact sur les performances. Nous traitons chaque requête après Enfin. , effectuez une session d'écriture et écrivez les attributs modifiés.

Si aucune modification de session n'est effectuée cette fois, l'écriture redis ne sera pas effectuée. Ce n'est que lorsque la session inchangée dépasse un seuil de temps (le seuil du délai d'expiration de l'actualisation de la session n'est pas modifié) qu'elle sera déclenchée. La session est enregistrée afin que la période de validité de la session puisse être prolongée.

Deux méthodes de mise en œuvre :

Stockage centralisé de session (redis, memcached, hbase, etc.).

Copier les données de session sur différents serveurs. Les avantages et les inconvénients des deux méthodes doivent être clairs pour tout le monde.

Plan de mise en œuvre basé sur le stockage centralisé de session :

Ajouter un filtre, intercepter les requêtes et envelopper HttpServletRequest

Réécrire la méthode getSession et l'obtenir à partir de la session données de session de stockage, renvoie l'implémentation HttpSession personnalisée

Après avoir généré une nouvelle session, écrivez l'ID de session dans le cookie

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn