Quando e quanto tempo dovrei memorizzare nella cache i dati letti da un'API esterna?

1

Sto lavorando con un'API, ma non sono sicuro quale sia il modo migliore per memorizzare i valori restituiti dall'API.

In particolare, sto lavorando con l'API RIOT proprio come un piccolo progetto per hobby. Vorrei memorizzare queste informazioni da qualche parte in modo che non solo possa confrontare gli utenti tra loro ma anche presentare le statistiche degli utenti senza dover chiamare l'API ogni volta.

Non mi sembra giusto per me conservare tutte queste informazioni quando sono già lì ma, ancora una volta, non vedo la necessità di chiamare costantemente l'API per ogni gioco che voglio recuperare informazioni ogni volta l'utente vuole informazioni.

    
posta ReallyGoodPie 09.11.2015 - 07:33
fonte

2 risposte

2

Ricorda i principi della memorizzazione nella cache . Cache

  1. Dati che sono vicini allo spazio
  2. Dati che sono vicini nel tempo

Il primo si chiama space località e il secondo è chiamato temporale locality . Un semplice esempio del primo tipo di dati è: Se un utente richiede una parte variabile di un oggetto, è bene recuperare l'intero oggetto perché è probabile che l'utente chieda anche i dati che sono "chiusi" (ad esempio nello stesso oggetto).

Un semplice esempio del secondo tipo di memorizzazione nella cache è dato dal fatto che i dati che vengono utilizzati spesso sono validi per la cache. Se l'utente ha visualizzato la variabile A, è probabile che visualizzi nuovamente la variabile A.

Quindi archivia i tuoi dati usando memcache , redis , una tabella hash o simile, e utilizzare i principi del caching per scegliere quale dati che usi

Sei anche fortunato che puoi effettivamente misurare il tasso di successo della tua memorizzazione nella cache una volta che lo hai messo in atto. Il tasso di successo è semplicemente il numero di risultati diviso per il numero di chiamate.

Se vuoi studiare i dettagli delle memorie cache, un buon libro è Organizzazione computer e amp; Design di Patterson / Hennesy.

    
risposta data 09.11.2015 - 15:30
fonte
0

Che cosa ti costerà per dati obsoleti ?, e cosa costa una chiamata API?

Se stai convalidando un numero di cellulare e ti viene addebitato $ 10 per clic su un contratto aziendale, probabilmente non più di un quarto.

Punteggio di credito? Probabilmente ogni giorno.

Profondità del mercato? la vostra chiamata, i sistemi di trading non memorizzeranno affatto la cache, ma una valutazione del trust di unità potrebbe richiedere solo un aggiornamento oraria.

Con qualsiasi dato di gioco, non vuoi attirare l'attenzione su te stesso come un impatto sulle prestazioni, ma con parsimonia è una buona strategia per tutto ciò che è gratuito. Mi piace raschiare le pagine web.

E sì, come indicato in un'altra risposta, puoi misurare il successo della tua strategia per diminuire l'età dei tuoi dati durante i periodi di maggiore volatilità.

Un'analisi costi / benefici dovrebbe essere sempre tirata fuori dal tuo cappello per difendere qualsiasi decisione tu prendi e, se davvero conta, dare a un utente adeguatamente abilitato la possibilità di aggiornare i dati se assolutamente necessario.

    
risposta data 15.01.2019 - 03:30
fonte

Leggi altre domande sui tag