Y a-t-il un moyen de stocker de petites données dans la mémoire RAM à l'aide de PHP afin que je puisse avoir accès aux données entre différentes sessions au lieu de la régénérer. Quelque chose de similaire à Memcached (je n'ai pas accès à Memcaathced). Ma solution actuelle est juste pour enregistrer les données dans le fichier. P>
4 Réponses :
Je suppose que vous êtes sur un serveur partagé de quelque sorte. P>
sessions, la méthode la plus importante de persistance de données sur les pages PHP, fonctionnement basée sur des fichiers. Vous pouvez modifier le gestionnaire de session pour être basé sur la base de données, mais ce n'est pas basé sur la RAM, non plus. P>
Autant que je puisse le voir, sans changer votre système au niveau de la racine (par exemple pour installer Memcached ou stocker des fichiers de session sur un disque RAM), cela n'est pas possible. p> memcached code> ou une autre solution de mise en cache est en effet le seul moyen de le faire. P>
Vous pouvez toujours utiliser une DB en mémoire pour enregistrer les données. Éventuellement surkill, cependant. P>
Je suis surpris que personne d'autre a jeté votre réponse. J'ai eu du succès avec des tables de mémoire MySQL et ils sont vraiment rapides. RDB pourrait être surcharge pour des sessions, mais c'est une excellente option lorsque vous n'avez pas accès à Memcached ou / Dev /
APC ?
Il fonctionne différent de Memcached; Dans Memcached, vous pouvez accéder aux données de différentes langues (C, Python, etc.), tandis que APC fonctionne uniquement pour PHP. P>
EDIT FORT> Êtes-vous sûr que APC est bien installé?
Avez-vous ajouté Ceci est un test simplement qui fonctionne parfaitement pour moi: P> extension = apc.so code> dans votre php.ini? Et pour redémarrer Apache (im en supposant que vous avez sur un serveur de lampe avec Apache2)? Qu'est-ce que vous
phpinfo (); code> dit à propos de APC? P>
<?php
/*
* page.php
* Store the variable for 30 seconds,
* see http://it.php.net/manual/en/function.apc-add.php
* */
if(apc_add('foo', 'bar', 30)){
header('Location: page2.php');
}else{
die("Cant add foo to apc!");
}
<?php
/*
* page2.php
* */
echo 'foo is been set as: ' . apc_fetch('foo');
Il ne peut pas installer memcached. Il est donc probable qu'il ne peut pas installer APC non plus
Vrai, mais beaucoup de sociétés permettent d'utiliser APC (avec certaines limitations) - nous devons lui demander.
Créer un fichier dans / dev / shm code> et il sera maintenu en mémoire jusqu'à ce que la machine soit redémarrée. Cela peut être plus rapide ou plus rapide que d'utiliser n'importe quel ancien fichier, en fonction de votre motif d'utilisation. P>
Il semble être sur un serveur partagé
@Pekka Eh bien, alors il est foutu ... J'espère que son fichier est mis en cache par le système d'exploitation.
duplicaté possible de PHP - Variables latérales du serveur qui "vivent" pour jamais? - Il y a beaucoup de réponses qui sont applicables à votre question.
Pourquoi? Sur n'importe quel système d'exploitation moderne (où le stockage n'est pas sur un système de fichiers partagé), des données de fichier sont en cache en mémoire de toute façon.