Comment puis-je mettre en cache des données dynamiques à partir d'une API REST en utilisant PHP?

StackOverflow https://stackoverflow.com/questions/4241418

Question

Mise à jour: J'ai décidé de suivre les conseils ci-dessous et mettre en œuvre un niveau Memcached dans mon application. Maintenant, j'ai une autre pensée. Serait-il possible / une bonne idée de faire une demande d'AJAX sur un sondage (disons tous les cinq ou dix minutes) que les chèques Memcached et mises à jour lorsque Memcached est arrivé à expiration? De cette façon, le temps d'attente est jamais vécue par l'utilisateur final, car il est effectué en arrière-plan.


J'utilise l'API REST Directed Edge pour faire des recommandations sur mon application Web. Le problème que je rencontre est que la requête I pour un nombre important de recommandations dans plusieurs endroits à travers le site, et la latence est importante, ce qui rend la charge de la page quelque chose comme 2-5 secondes pour chaque requête. il a l'air terrible.

Je ne suis pas en utilisant les liaisons PHP Directed Edge et à la place je utilisant des liaisons PHP je me suis écrit. Vous pouvez voir les fixations sur GitHub. Je me connecte à leur API en utilisant cURL .

Comment puis-je mettre en cache les données que je reçois? Je suis ouvert à un certain nombre de méthodes aussi longtemps qu'ils sont assez faciles à mettre en œuvre et assez flexible.

Voici un exemple du code client pour obtenir des recommandations.

$de = new DirectedEdgeRest();
$item = "user".$uid;
$limit = 100;
$tags = "goal";
$recommendedGoals = $de->getRecommended($item, $tags, $limit);
Était-ce utile?

La solution

Vous pouvez mettre en cache dans un fichier de la sérialisation et file_put_contents:

file_put_contents("my_cache", serialize($myObject));

Vous pouvez également le cache memcached ou une base de données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top