Table of contents
Mettre les caches en mémoire
Memoization est particulièrement utile lorsque votre hébergement propose un système de cache mémoire ’user’. À chacun des systèmes de cache mémoire les plus répandu correspond une option de memoization :
- XCache
- APC Cache
- redis
- memcache(d)
Lorsque votre site dispose de l’un de ces systèmes de caches, le paramétrage de memoization
vous en propose le choix. Il suffit de choisir l’option, et votre SPIP bénéficie d’un cache mémoire au lieu d’un cache sous la forme de fichiers sur le disque. L’accès aux caches est donc grandement accéléré.

Lorsqu’activé sur un SPIP, le plugin memoization
ne touche pas au fonctionnement habituel du cache de SPIP, sur la durée de mise en cache d’une page ou noisette. Cela ne fait que transférer le stockage du mécanisme de cache de SPIP dans la RAM.
Il y a une autre différence par rapport au cache SPIP classique : avec memoization
il n’y en a tout simplement pas de garbage collector car c’est chaque système de cache qui gère son propre nettoyage des données périmées. Cela permet d’éviter un bug récurrent sur les gros sites SPIP : l’« explosion » du cache.
XCache
- doc technique pour la configuration : http://xcache.lighttpd.net/wiki/PhpIni
- XCache n’est pas compatible PHP7 (et ne le sera peut être jamais)
APC ou APCu
- APC Cache
- APCu Cache
- il n’y a aucun paramétrage supplémentaire à faire.
- Lorsque vous activez l’option APC Cache
ou APCu Cache
, vous pouvez aussi bénéficier d’un navigateur-analyseur de cache en installant le plugin XRay en complément, ainsi que de CacheLab.
redis
- https://redis.io/clients
- Pour ce système de cache, le paramétrage SPIP du plugin propose deux modes pour interroger la base : “Serveur” et “Socket Unix”. Ce choix dépends de la configuration du serveur redis choisi par l’admin sys.
- Pour la sérialisation : privilégier SERIALIZER_IGBINARY
, qui est plus performant
memcache(d)
- memcached est une évolution plus récente de memcache.
- Liens :
Autres options de cache
filecache
L’option filecache
est la seule option qui ne range pas les caches en mémoire. On l’utilisera lorsque l’hébergement ne propose pas de cache en mémoire.
Avec filecache
, memoization
range les caches sous la forme de fichiers, comme le SPIP de base, mais distribue ces fichiers dans un plus grand nombre de dossiers que par défaut avec SPIP. Il n’y a pas de réglage limite pour le filecache
; par défaut, mémoization prévoit une distribution homogène des caches parmi 16^4 fichiers. La plupart du temps ce sera satisfaisant, mais en cas de collision, il est possible de modifier cette valeur et régler ainsi la taille maxi (il faudra faire quelques essais).
Note : l’option filecache
est intégrée dans SPIP à partir de la version 3.1.
nocache
Avec nocache
, SPIP ne gère plus de cache. C’est à utiliser temporairement seulement, le temps d’un débug par exemple.
Discussions par date d’activité
5 discussions
Bonjour;
votre plugins fonctionne à présent.
Mais est-ce normal ceci:
et ceci:
Cela est apparue lors de la recherche d’un plugin dans l’interface Gestion des plugins -> recherche et ajout de plugins.
Je rentre mon critère de recherche, et quand je clique sur “rechercher”, j’ai ces erreurs (plusieurs fois), puis la recherche s’affiche en dessous de la liste des warnings.
Encore un problème de mon côté? Étrange car tout le reste du site semble fonctionner.
Rémi.
C’est juste que ton hebergeur affiche les warnings, alors que la plupart du temps ils sont masqués. Cela étant, les warnings traduisent souvent une erreur de progr. Et en plus l’un d’entre eux sera bloquant dans le futur.
Peux tu télecharger et installer manuellement une version que j’ai faite rapidement, et tester pour me dire les résultats ?
https://git.spip.net/spip-contrib-extensions/memoization/archive/fix_warning_rsuinux.zip
(j’ai pas d’install redis, donc j’ai pas pu tester, et vu que je suis fatigué... je préfère pas commiter directement).
Je viens d’installer:
- affichage sans être connecté: ok
- affichage après être connecté : ok
- interface de configuration/rédaction d’article: ok
- recherche d’un plugin (c’est ici ou j’ai eu les warnings): ok!
Plus aucune erreur!
Bravo!
J’espère que votre fatigue n’est pas dû au virus.
Merci beaucoup et prenez soin de vous.
Rémi.
Super, c’est publié !Ca sera disponible prochainement via SVP.
Reply to this message
Bonsoir;
Comment détectez vous si le serveur Redis est présent (ou non), ainsi que sa méthode de connexion (socket ou tcp)?
Je vous explique rapidement:
Je suis en auto hébergement, et donc j’ai accès à tout le serveur.
Spip est installé depuis déjà plusieurs mois, et fonctionne. Je viens d’installer un serveur redis, configuré en socket, et il fonctionne parfaitement (test avec redis-cli).
Mais memoization refuse de le découvrir!!! ça fait deux jours que je suis dessus.
Si vous aviez une idée, merci de m’aider.
Cordialement.
Rémi.
C’est la méthode “méthode” : https://git.spip.net/spip-contrib-extensions/memoization/src/branch/master/memoization_options.php#L38
Et ça teste
extension_loaded('redis')
: https://git.spip.net/spip-contrib-extensions/memoization/src/branch/master/memoization_options.php#L60Que retourne cet appel sur ton système ?
Bonjour;
Merci pour cette réponse rapide.
J’ai peur que ce soit malgré tout un problème de mon côté:
php -m ne me renvois pas redis comme module chargé. Pas de module chargé, pas de réponse à la méthode: logique!
Voila qui me désappointe fortement (et je n’aime pas être désappointé, selon la formule consacré)
Je retourne donc à mes tablettes pour charger cette ?#“”!! de librairie .
Merci de votre aide.
Rémi.
Alors, résultat:
Je mets ici pour information, même si cela ne concerne pas directement le plugin, la solution:
Le problème venait ’simplement’ de l’installation de php7-redis sous Alpine Linux.
Il faut (il m’a fallut) installer php7-pecl-redis ET php7-pecl-igbinary. Suite à ça, mettre les deux fichiers ini dans la configuration de php7.
Seulement après, cela a fonctionné.
Et oui, pour igbinary, c’est marqué “à privilégier” dans la doc. Mais sous alpine Linux, c’est compilé avec!!!
Si cela aide quelqu’un, tant mieux. (peut être à intégrer dans la doc?)
Bonne soirée. Et encore merci pour la réactivité.
Reply to this message
Un truc que je ne comprend pas : malgrès l’utilisation APCU j’ai quand même du cache “fichier” (mais bien plus petit que par le passé). Quid ?
Il y a plusieurs niveaux de cache. Les caches PHP (compilés dans le dossier skel) restent fichiers. Memoization ne traite que les caches HTML finaux.
Reply to this message
Attention!
Plantage du site laccreteil.fr lors de la mise à jour en v2.0.2, avec message impossible à vous copier ici car il n’est pas permis d’insérer des images ni d’utiliser les attributs html class ou style
Bonne journée.
Michel
Quel est le message d’erreur ?
Vous pouvez le recopier en vous servant des touches de votre clavier.
Ou si vous voulez absolument donner une image, indiquez un lien vers www.framapic.org
Ah il est indiqué sur spip-user :
Voilà c’est corrigé dans la version 2.0.3
Merci!
Attention, il faut attendre 2.0.3 car en auto, la version est encore 2.0.2 à cette heure!
Bonne journée
Reply to this message
Bonjour,
Sur notre espace d’hébergement seuls autodetect/filecache ou nocache sont disponibles. Cela veut dire que l’hébergement ne propose pas de cache en mémoire et si je me fie à la doc, les performances sont un peu pénalisées.
Que faut-il faire (modules à installer ? autre chose) pour rendre dsiponible memcache, APC et les autres ? Quelque chose à demander à l’hébergeur ?
Ce site est un site d’entraide autour de SPIP et cette doc porte sur le plugin memoization. L’installation des systèmes de caches mémoire cités ici n’entre pas dans ce cadre et pour ma part je suis incapable de vous répondre.
Vous trouverez les indications utiles derrière les liens déjà fourni dans cette page. Ou sinon demandez à votre hébergeur ou à votre admin sys.
Reply to this message
Ajouter un commentaire
Follow the comments:
|
