6
votes

Caching Variables en PHP

Je cache le tampon de sortie des pages récemment, mais je veux maintenant mettre en cache les valeurs des variables.

J'ai un fichier PHP qui fait un tas de requêtes MySQL, puis remplit des variables avec diverses données de ces requêtes.

Certaines de ces variables ne changent jamais mais certaines changeront assez souvent. Comment puis-je mettre en cache certaines variables de cette manière? J'utilise la mise en cache à base de fichiers, si cela aide.


3 commentaires

Dupliqué possible de écrire un système de mise en cache simple dans PHP et de nombreux autres autres


Pouvez-vous clarifier votre question? Si vous avez déjà un mécanisme de cache, quel est le problème?


À moins que le site ne soit énorme et mal écrit (lent) toute augmentation de vitesse sera négligeable.


4 Réponses :


1
votes

Je ne sais pas, comment vous avez structuré vos trucs de mise en cache actuelles. Il s'agit simplement d'un modèle court sur la manière dont vous pouvez enregistrer n'importe quel type de variable (tant que son contenu est sérialisable) à un fichier.

file_put_contents($filename, serialize($variable));


0 commentaires

11
votes

Yup, la mise en cache basée sur des fichiers est une option.

Il existe également d'autres options telles que memcache et APC

Vous devriez aussi regarder cela aussi. Si votre application met beaucoup de charge sur votre serveur MySQL, et si votre DB est déjà optimisé, la mise en cache est une étape que vous pouvez prendre.


0 commentaires

2
votes

Vous pouvez jeter une variable (y compris un tableau) en utilisant sérialiser , et L'inverse est non désériorize .

Le dumping dans un fichier serait une solution de cache inutile, vous pouvez envisager d'utiliser MemCache qui peut stocker toute variable en mémoire, mais nécessite des travaux sur le côté serveur.

Je trouve qu'un mySQL local avec des tables de mémoire peut être utile, aussi ...


0 commentaires

1
votes

Étant donné que vous avez posé des questions sur la mise en cache basée sur fichier, les deux Memcache et APC ne sont pas une option, bien que je recommande certainement les deux dans les cas où les données stockées ne sont pas trop grandes .

Pour la mise en cache basée sur des fichiers, je vous recommanderais d'utiliser un cadre de mise en cache. Par exemple, vous pouvez utiliser zend_cache dans le cadre zend . Il vous permet de stocker vos résultats de la requête dans des fichiers à l'aide d'une belle interface orientée objet. De plus, vous avez beaucoup d'options, telles que la validation et la sérialisation. Il existe également d'autres frayères de mise en cache là-bas.


0 commentaires