cache HTTP o cache in memoria

5

Ho due opzioni per implementare il caching nella mia applicazione web. Posso aggiungere una cache Varnish al di fuori del mio codice applicazione e memorizzare le risposte in base a una URL per richiesta, oppure posso usare una cache in memoria come memcached per archiviare i risultati degli accessi al database.

Ho difficoltà a scegliere tra queste due implementazioni. Penso che l'aggiunta di Varnish si traduca in un minor numero di codice (non è necessario aggiungere la logica se archiviare o meno un risultato del database), ma c'è un po 'più di overhead in termini di infrastruttura per aggiungere il livello di caching di Varnish.

Quali sono gli altri vantaggi dell'utilizzo di una soluzione rispetto all'altra? E ci sono altre cose importanti che non ho considerato?

    
posta user4184113 08.12.2016 - 22:48
fonte

1 risposta

1

Non hai detto quale sia la tua motivazione dietro aver bisogno di una cache.

Avere entrambi i tipi di cache sarebbe il caso ideale anche se entrambi velocizzano le cose a modo loro.

Ti suggerisco di provare prima la vernice e vedere se i miglioramenti che fornisce sono soddisfacenti (il più delle volte lo è).

In caso contrario, prova la memorizzazione nella cache a livello di app e prova a memorizzare nella cache gli elementi in base ai loro effetti sulle prestazioni del sistema (questo significa che dovrai profilare la tua applicazione accuratamente con diversi tipi di carichi), quindi prova un aspetto alla volta nell'ordine in cui influisce sulle prestazioni (prima autenticazione e informazioni relative alla sessione, quindi risultati Db e così via). Per ogni aggiunta ri-profila il tuo sistema e confronta i risultati.

Dovresti anche provare a vedere se puoi migliorare il codice (se possibile) nei casi in cui è il codice (e non l'IO che sta rallentando le cose).

Una volta fatto questo dovresti essere in grado di trovare l'impulso del sistema, e sarai in grado di isolare e migliorare le prestazioni dei singoli ingranaggi senza causare complessità. Soprattutto, STOP quando trovi il tuo equilibrio - Il punto in cui il lavoro supera i potenziali guadagni ottenuti.

    
risposta data 09.12.2016 - 10:47
fonte

Leggi altre domande sui tag