Gestionar la memòria cau (caché)

i evitar fer treballar el servidor que té altres coses a fer

Recordem que aquest tutorial només és vàlid fins a SPIP 1.8.3 i obsolet a partir d’SPIP 1.9. S’està tornant a escriure a l’espai privat d’aquest lloc Web.

No obstant, podeu realitzar aquest tutorial ometent els fitxers .php3 i posant els fitxers a dins la carpeta squelettes/ que creareu en cas de necessitat, a l’arrel.

A les lliçons anteriors hem començat a elaborar les plantilles. Pensem ara en les pobres neurones del nostre ordinador. En aquesta lliçó, res divertit, tampoc res d’essencial. Els mandrosos aprofitaran per arrupir-se al fons, prop del radiador...

A partir d’SPIP 1.9, el délais de la memòria cau descrit més avall es troba definit al fitxer html de l’esquelet, per una etiqueta #CAHE, per exemple #CAHE3600

Resum per ells i per la gent que té pressa: en els fitxers de crida del tipus tutoriel.php3, poseu $delais = 3600; en lloc de 0.

...

En el moment que una pàgina és sol·licitada a l’SPIP, aquest mira si, per atzar, aquesta pàgina ja havia estat visitada. Si l’URL demanada és http://elvostrelloc.net/tutoriel.php3?id_article=12, l’SPIP mira al subdirectori CACHE/ si aquest fitxer existeix, i, si hi és, compara la data del fitxer que hi ha a la memòria cau (caché) amb el $delais fixat en el fitxer de crida tutoriel.php3.

En el nostre exemple, havíem fixat un termini de $delais=0; -o sigui que es recalculen sistemàticament les pàgines a cada consulta del lloc. Passem a un termini de $delais=3600; (s’expressa en segons).

La nostra pàgina web només es renova si, quan el visitant la sol·licita, la versió de la memòria cau és de fa més d’una hora (o sigui de 3600 s.). En cas contrari, l’SPIP llegeix simplement el contingut del fitxer de la memòria cau [1], i torna a enviar el resultat sense connectar-se a la base de dades (excepte per inserir-hi un «comptador» a les estadístiques).

Com fixar aquests $delais per optimitzar la relació reactivitat/càrrega del servidor? No hi ha cap solució miraculosa, però no dubteu fixar un termini d’un dia (per exemple, $delais=24*3600;) o més pels articles i les seccions. Les pàgines de navegació més importants poden tenir $delais més curts (vint minuts o una hora per exemple) si se suposa que el vostre lloc ha de reaccionar a la validació freqüent de noves breus i de llocs sindicats... Si esteu hostatjats en un servidor compartit amb altres llocs, sigueu respectuosos amb els altres i no agafeu tot el temps de càlcul per pàgines que rarament canvien: seria especialment ximple sobretot pel que fa als grans articles o als sumaris, ja que el càlcul de les pàgines pot tardar uns segons i això alentiria la consulta de les vostres pàgines...

Com provocar una actualització fora de termini? Acabem de decidir $delais extremadament llargs, i ens adonem d’un error ortogràfic en una pàgina. Fem la correcció a l’espai privat... Com el podem esborrar de seguida l’error del nostre lloc?

-  Des de la interfície privada de l’SPIP, clicant a «Veure en línia» s’activa l’actualització de la pàgina corresponent a l’#URL_ARTICLE o a l’ #URL_RUBRIQUE de l’article o de la secció corresponent. És el cas més freqüent.

-  A la part «Còpia de seguretat/Restauració» de l’espai privat, un botó «buidar la memòria cau» esborra tots els fitxers que hi ha a la memòria cau (una eina útil quan es fan moltes modificacions i si teniu un lloc força complex; sinó millor evitar-ho).

-  Malgrat tot, la solució més simple és demanar, a la pàgina d’inici de l’espai privat, que l’SPIP us «posi una galeta d’administració». Aquesta galeta s’emmagatzemarà en el vostre navegador, i l’SPIP us reconeixerà quan envieu la pàgina al lloc públic: llavors un botó, situat al capdavall de la pàgina, us proposarà «Recalcular aquesta pàgina».

Retorn al context: Tornem aquí a la noció del context. Si la plantilla es cridada en un context d’id_article, d’id_rubrique o fins i tot d’id_breve, quan l’SPIP detecta la galeta, un altre botó: «Modificar aquest article (o secció, o breu)», us porta directament a la pàgina corresponent del back-office. A qui donar les gràcies?

Últims detalls:
-  per raons evidents, el motor de cerca no activa la memòria cau, i les pàgines amb fòrum s’actualitzen cada cop que s’hi afegeix una nova contribució.
-  el directori CACHE/ està situat a l’arbre del lloc i es subdivideix en 16 subdirectoris numerats 0, 1, 2... 9, A, B... F, on els fitxers de memòria cau es distribueixen gairebé aleatòriament; això s’anomena «hashing de la memòria cau» i tan sols per això val la pena que s’esmenti.
-  els fitxers de memòria cau són accessibles fins i tot si la base de dades «ha caigut», el que protegeix al lloc d’avaries transitòries del servidor mySQL.

Notes

[1Pels especialistes, es tracta a la pràctica d’un include PHP del fitxer corresponent, que permet executar el codi a partir de la memòria caché...

Carpeta

Autor merce Publié le : Mis à jour : 26/10/12

Traductions : عربي, català, corsu, Deutsch, English, Español, italiano, Português, русский, slovenčina, Türkçe, українська