Come posso cache di dati dinamici da un API REST con PHP?
-
27-09-2019 - |
Domanda
UPDATE: Ho deciso di seguire i consigli qui sotto e implementare un livello Memcached nella mia app. Ora ho un altro pensiero. Sarebbe possibile / una buona idea per fare una richiesta AJAX su un sondaggio (dire ogni cinque o dieci minuti) che i controlli Memcached e quindi aggiorna quando Memcached è scaduto? In questo modo la latenza non è mai vissuta dall'utente finale perché è eseguito in background.
sto utilizzando API REST di Directed Edge per fare raccomandazioni sul mio web app. Il problema che sto incontrando è che domanda che per un numero significativo di raccomandazioni in diversi luoghi in tutto il sito, e la latenza è significativa, rendendo il caricamento della pagina qualcosa come 2-5 secondi per ogni query. sembra terribile.
Non sto usando attacchi PHP di Diretto Edge, e invece sto utilizzando alcuni attacchi PHP me stesso che ho scritto. È possibile visualizzare le associazioni su GitHub . Ho il collegamento al loro API utilizzando cURL .
Come faccio a memorizzare nella cache i dati che ricevo? Sono aperto a qualsiasi numero di metodi in modo fino a quando sono abbastanza facili da implementare e abbastanza flessibili.
Ecco un esempio del codice client per ottenere raccomandazioni.
$de = new DirectedEdgeRest();
$item = "user".$uid;
$limit = 100;
$tags = "goal";
$recommendedGoals = $de->getRecommended($item, $tags, $limit);
Soluzione
È possibile memorizzare nella cache in un file utilizzando serializzare e file_put_contents:
file_put_contents("my_cache", serialize($myObject));
Si potrebbe anche cache memcached o di un database.