Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 12-05-2008 16:09:55

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

[Résolu] [Zend_Cache] Faut-il utiliser le cache ou les sessions ?

N'ayant jamais vraiment utilisé l'un ou l'autre (si les session depuis peu), je me pose la question : qu'est ce que je dois utiliser un système de cache avec Zend Cache ou je stockes les variables qui ne doivent pas se recharger à chaque fois ? Ou bien, stocker les variables avec les sessions ?

Quel est l'avantage/inconvénient du cache par rapport au session ? Quel type d'information met-on dans le cache ? Est-ce que mettre en place un système de cache est complexe (création de classes pour gérer) ?

Merci

Dernière modification par whitespirit (14-05-2008 08:11:34)

Hors ligne

 

#2 12-05-2008 16:27:00

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Résolu] [Zend_Cache] Faut-il utiliser le cache ou les sessions ?

Hello,

Pour moi la session correspond au parcours du site par un visiteur, donc le stockage des informations, variables correspondant à ce visiteur.

J'utilise le cache indépendamment du visiteur. Par exemple, pour une requête SQL ou un appel de fonction générant une logique métier gourmande, je stocke le résultat en cache. L'appel suivant par le même ou un autre visiteur de la page ne nécessite plus la requête SQL ou le calcul gourmand.

En cache tu peux stocker des données brutes (ex: tableaux PHP) mais aussi du HTML prêt à l'affichage.

Pour ce qui est de la complexité, je trouve Zend_Cache très simple.

Ce que j'en dis n'engage que moi bien entendu smile

A+

Dernière modification par mikaelkael (12-05-2008 16:28:39)


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#3 12-05-2008 18:00:43

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Re: [Résolu] [Zend_Cache] Faut-il utiliser le cache ou les sessions ?

Mais les infos sont stockés de la même façon ? On ne peut pas stocker des tableaux ou objets dans une session ?
Mais du coup, le cache s'utilise comme une session ?

Hors ligne

 

#4 12-05-2008 18:15:25

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Résolu] [Zend_Cache] Faut-il utiliser le cache ou les sessions ?

Hello,

Par défaut les infos sont dans des fichiers. 1 session = 1 fichier, 1 cache = 1 fichier.

Tu peux stocker la même chose en session et en cache. Il ne s'agit pas de la façon de stocker mais de la nature des infos à stocker. Un fichier de session est chargé à chaque chargement de page donc il faut stocker le minimum nécessaire.

Tu mets dans le cache ce qui n'est pas utile à chaque chargment de page ou qui est indépendant du visiteur.

Exemple de cache : ta page d'accueil contient un menu que tu génères en faisant 15 requêtes dans ta base (rubriques, articles). Ce menu évoluant peu, ton script PHP peut générer le HTML correspondant et mettre en cache le résultat. Ce cache est alors détruit lors d'une modif dans la base (ajout rubrique, article...) sinon il est toujours conservé et affiché quelque soit l'utilisateur sans faire les 15 requêtes.

Exemple de session : tu stockes le login de l'utilisateur, quand l'utilisateur quitte son navigateur, la session est détruite.

J'espère que cela répond à ta question.
A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#5 13-05-2008 06:49:00

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Re: [Résolu] [Zend_Cache] Faut-il utiliser le cache ou les sessions ?

oui merci, je vais me documenter sur la gestion du cache par ZF. Ton exemple reprend bien mon pb, j'ai des menus que je souhaite charger qu'une fois.

Hors ligne

 

#6 13-05-2008 13:56:12

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Résolu] [Zend_Cache] Faut-il utiliser le cache ou les sessions ?

pour moi la session est l'espase des variables de l'utilisateur
le cache un espace de stockage temporaire pour l'appli
mais je n'ai pour le moment pas eu besoin de cache avec ZF
pour générer mon menu j'ai besoin d'une 10ene des tables mais je ne fais qu'1 requête
et le résultat dépend de l'utilisateur et du contexte.

à part quelques liste (popup-menu) je n'ai rien à mettre en cache et le cache ne fait pas gagner de temps avec si peu d'info à y stoker.

le seul truc qui est commun à tout mes utilisateur et l'entête de mes pages mais il est en HTML pur donc pas de passage par php

A+JYT

Hors ligne

 

#7 13-05-2008 15:02:47

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Résolu] [Zend_Cache] Faut-il utiliser le cache ou les sessions ?

Hello,

Tout à fait d'accord avec toi sur la nature de la session et du cache. Le cache d'un menu est effectivement réalisable en 1 requête la plupart du temps.

Voici donc 2 exemples de cache que j'utilise en production :
1. J'ai une grosse BDD (quelques milliards de lignes). Tout les matins, un job fait un calcul de stat et rafraichit une table dédiée. A partir de ces données je génère via PHP (calcul moyenne, groupement mensuel ou journalier) un tableau HTML qui peut à lui seul peser 250ko. La génération de la page prend 2sec à 2.5sec. Je sais que les données associées ne bougeront pas jusqu'au lendemain matin donc je crée un cache. A l'appel suivant de cette page, il faut 0.2 à 0.25s à PHP pour rappeler ce tableau.

2. Je génère à partir d'une autre base le planning de plusieurs ateliers (commandes, capacité atelier). La page nécessite 225 requêtes (je connais bien le SQL, je peux pas faire autrement sad). Quelques utilisateurs modifient le planning, les autres ne font que le visualiser. Je mets donc en cache ce planning et je le dévalide dès qu'une modification est détectée.

Le plus de tout ceci, si ma BDD est difficilement accessible (replication, jobs en cours), il n'y a aucune variation pour l'utilisateur.

J'espère que ceci montre une "vraie" utilisation de cache.

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#8 14-05-2008 08:11:13

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Re: [Résolu] [Zend_Cache] Faut-il utiliser le cache ou les sessions ?

C'est une grosse BD !!!! J'aimerai bien voir ton appli tourner, ça doit être extraordinaire !!!! Heureusement, pour ma première appli php + zf, je n'aurai "que" qq centaines de lignes dans ma base.

Merci pour tes explications.

Hors ligne

 

#9 22-10-2009 09:57:19

Kaiowas
Membre
Date d'inscription: 03-08-2009
Messages: 49

Re: [Résolu] [Zend_Cache] Faut-il utiliser le cache ou les sessions ?

Juste merci pour cet éclaircissement, je me posais la même question que whitespirit (désolé de ressortir les vieux sujets du grenier)

Hors ligne

 

#10 22-10-2009 12:57:18

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Résolu] [Zend_Cache] Faut-il utiliser le cache ou les sessions ?

Hello,

smile Soyons bien clair, ce système est principalement géré par une application en C et le SGBD Oracle. La couche PHP n'est que qu'une couche permettant la présentation de résultats synthétiques : tableaux, rapport, graphique.

La génération de ces éléments peut facilement prendre 3 à 4s. Quand je sais que mes données ne vont pas évoluer au cours de la journée (ex [1] : job SGBD de pré-calcul des données exécuté tous les matins à 5h), je les mets en cache. A l'appel suivant de la même page, l'affichage est instantané. Dans ce cas précis, je n'ai pas d'invalideur de cache.

@+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages