Maison  >  Article  >  développement back-end  >  Fichiers temporaires de session et instructions de cache en php

Fichiers temporaires de session et instructions de cache en php

伊谢尔伦
伊谢尔伦original
2017-04-28 16:44:054012parcourir

1. Fichiers temporaires de session

Dans le serveur, si toutes les sessions utilisateur sont enregistrées dans le répertoire temporaire, cela réduira la sécurité et la sûreté du serveur. Efficacité, l’ouverture d’un site stocké sur le serveur sera très lente. Sous Windows, les fichiers du serveur de session par défaut de PHP sont stockés dans C:WINDOWSTemp. Si l'accès simultané est important ou si un trop grand nombre de sessions sont créées, il y aura un grand nombre de fichiers de session similaires à sess_xxxxxx dans le répertoire. entraînera une dégradation des performances et peut entraîner des erreurs du système de fichiers résultant d'attaques. Pour cette situation, PHP lui-même offre une meilleure solution. En php, l'utilisation de la fonction session_save_path() peut résoudre ce problème.

L'utilisation de la fonction PHP session_save_path() pour stocker les fichiers temporaires de session peut atténuer le problème de réduction de l'efficacité du serveur et de lenteur d'ouverture du site provoquée par le stockage de fichiers temporaires. L'exemple de code est le suivant :

<?php
$path = &#39;./tmp/&#39;;         //设置 session 存储路径
session_save_path($path);
session_start();
$_SESSION[&#39;username&#39;] = true;
?>
Remarque : La fonction session_save_path() doit être appelée avant la fonction session_start().

2. La mise en cache de session

la mise en cache de session consiste à stocker temporairement le contenu dans la page Web sous le dossier Fichiers Internet temporaires du client, et peut définir l'heure du cache. Lorsque vous parcourez une page Web pour la première fois, une partie du contenu de la page est temporairement stockée dans le dossier temporaire du client pendant une période de temps spécifiée. De cette manière, lors de votre prochaine visite sur cette page, vous pourrez directement lire le contenu. contenu dans le cache, améliorant ainsi l’efficacité de la navigation sur le site Web.

Fonction du cache de session

(1) Réduire la fréquence d'accès à la base de données. Les applications peuvent lire les objets persistants du cache beaucoup plus rapidement que récupérer les données de la base de données.

(2) Lorsqu'il existe une relation cyclique entre les objets persistants dans le cache, Session garantira qu'il n'y aura pas de boucle infinie d'accès au graphe d'objets, ni de débordement de pile JVM provoqué par la boucle infinie.

(3) Assurez-vous que les enregistrements pertinents de la base de données sont synchronisés avec les enregistrements du cache. Lorsque la session efface le cache, elle effectuera automatiquement une vérification des données sales (dirty-check). S'il s'avère que l'objet dans le cache de session est incohérent avec l'enregistrement correspondant dans la base de données, la base de données sera mise à jour en fonction du derniers attributs d'objet.

Le cache de session utilise la fonction session_cache_limiter(), dont le format de syntaxe est le suivant :

session_cache_limiter(cache_limiter)
Le paramètre cache_limiter est public ou privé. Dans le même temps, la mise en cache de session ne signifie pas la mise en cache côté serveur mais côté client. Le paramètre de durée de cache

n'est pas affiché sur le serveur. La fonction session_cache_expire() est utilisée, ainsi que son format de syntaxe. est la suivante :

session_cache_expire(new_cache_expire);
Le paramètre cache_expire est la durée du cache de session, en minutes.

Remarque : Ces deux fonctions de cache de session doivent être appelées avant la fonction session_start(), sinon une erreur se produira.

Ce qui suit utilise un exemple pour comprendre le processus de mise en cache des sessions. Le code implémenté est le suivant :

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