2010-10-02 5 views
0

Je crée un site qui permet aux utilisateurs de rechercher un fichier texte statique.est-il un moyen de mettre en cache de façon permanente un fichier texte dans la mémoire (php)?

Le fichier est un fichier txt de données statiques de grande taille (10 Mo) qui devait être accessible/lu chaque fois qu'un utilisateur effectuait une recherche (ce qui est, espérons-le, souvent).

Existe-t-il un moyen/une technique qui charge le contenu du fichier et le stocke en mémoire (et lui attribue une variable) de façon permanente afin d'accélérer le processus?

Répondre

0

Vous pouvez utiliser file_get_contents pour obtenir le contenu entier du fichier dans une variable de chaîne en mémoire.

+0

Merci, c'est ce que je fais en ce moment. Je veux juste savoir comment ne pas le faire à chaque fois que le script s'exécute. – Jamex

1

Eh bien, rien ne pouvait être en permanence dans la mémoire vive;)

Mais si vous avez déjà installé APC, vous pouvez stocker là-dedans, ou utiliser memcached ou Redis. L'utilisation de APC est préférable, car vous obtiendrez également un cache d'opcode, ce qui vous donnera un coup de pouce sur les performances, et ce n'est qu'un module PHP. Pas besoin d'installer un autre démon.

+0

Merci, je ne sais pas comment fonctionne apc. Supposons que le serveur a installé apc, comment ça marche? À l'heure actuelle, chaque fois que le script s'exécute, j'utilise file_get_contents pour charger le fichier dans la variable. Comment puis-je utiliser apc pour "stocker" le contenu du fichier, quels sont les codes php pour accéder au contenu apc stocké? – Jamex

+0

'APC' fournit deux fonctions,' apc_store() ', et' apc_fetch() '. Quelque chose comme 'apc_store (" content ", file_get_contents ($ filename))', et plus tard vous pouvez le récupérer via 'apc_fetch (" content ")'. – racetrack

+0

Il y a aussi 'apc_exists()' qui vous permet de savoir si la clé désirée est déjà stockée dans le cache ou non. – racetrack

Questions connexes