Différence entre Memcache, APC, XCache et les autres alternatives dont je n'ai pas entendu parler

au travail, nous avons récemment commencé à concevoir une application pour moi" à grande échelle " (nous sommes l'ingénierie pour le potentiel de servir jusqu'à des millions de visites par jour). L'un des principaux devs et le sysadmin ont installé memcache sur le serveur.

D'après ce que j'ai compris, Memcache conservera les résultats des requêtes et certaines tables en mémoire pendant un temps de X et conservera Tout ce qui est en bon état.

un inconvénient de memcache, il semble que je ne peux pas pour la vie que j'ai réussi à mettre en place sur mon environnement dev local. J'ai suivi quelques instructions différentes sur la façon de le compiler pour vous-même. La plupart, si ce n'est toutes les étapes semblent fonctionner correctement mais obtenir cette erreur sur PHPLoad:

 [11-Sep-2010 16:02:30] PHP Warning:  PHP Startup: Unable to load dynamic library '/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/memcached.so' - dlopen(/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/memcached.so, 9): image not found in Unknown on line 0  

ce n'est pas la question principale mais incedentally, si vous avez pu compiler Memcache pour MAMP 1.9 sur Snow Leopard, s'il vous plaît faites-moi savoir le truc.

Mon primaire la question est à propos de quelles sont les différences entre les différentes technologies de mise en cache sur le web. J'ai vu mention de Memcache, APC et Xcache (ici: Cache les résultats d'une requête mysql manuellement dans un fichier txt ) mais je ne connais pas les avantages, les inconvénients et les différences entre chacun.

à mon avis, Memcache a l'avantage d'être celui que le chef de file du projet dev et notre administrateur système ont choisi. Il a le inconvénient d'être foobar total pour essayer de mettre en place et compiler sur un Mac. :-^)

N'importe qui que j'aimerais entendre de n'importe qui qui qui peut énumérer les avantages et les inconvénients de chacun (ou même l'un des) les autres technologies de cachine. Où sont-ils utilisés au mieux, comment sont-ils utilisés au mieux. Et ainsi de suite.

ce sont des informations utiles, je pense.

Merci beaucoup d'avoir pris le temps d'élargir mes connaissances. - Alex.

21
demandé sur Community 2010-09-12 00:12:23

2 réponses

tout d'Abord, une liste de opcode cachers pour php .

Second Memcache / MemcacheD n'est pas un enseignant Opcode. Il s'agit d'un système de cache mémoire distribué. Il n'améliore pas la vitesse/performance de votre code PHP. Il peut être utilisé pour stocker des données.

APC, EAccelerator, XCache et les autres ne sont pas distribués, ce qui signifie que vous ne pouvez stocker des données que sur le serveur web local. Cependant, tous ceux-ci sont des cacheurs opcode et peuvent améliorer les performances de votre application PHP. La plupart, à l'exclusion D'EAccelerator (dans la version actuelle) peut également stocker des données.

je choisis généralement APC pour le cacher opcode (il serait inclus dans le noyau de PHP 6). Cependant, si j'ai aussi plus d'un serveur web pour le site, J'utiliserai aussi MemcacheD.


Modifier 1 je suis d'accord qu'il est très ennuyeux de configurer APC, Memcache sur MAMP. Il y a cependant tutoriels là face à de telles.


éditer 2 aussi en ce qui concerne le meilleur cache Opcode pour votre application dépend vraiment du serveur que vous utilisez. Certains fonctionnent mieux sur certains systèmes. Elle dépend aussi de la taille et de l'échelle de votre application, comment les cachers effectuer.


Modifier 3 très intéressant article ici sur la comparaison de la performance de quelques cachers différents. (Cet article semble être écrit en 2006 et ne devrait pas vraiment être utilisé pour le courant de référence)

31
répondu buggedcom 2014-04-24 21:30:19

APC est un cache opcode. Il stockera le code PHP analysé de sorte que chaque fois que vos fichiers PHP n'ont pas besoin d'être analysés.

Memcache est un cache de données. Il stockera les données comme une paire de valeurs clés.

2
répondu kta 2014-02-15 11:25:32