Questa pagina fornisce esempi di codice Python per l'utilizzo di memcache. Memcache è un sistema distribuito ad alte prestazioni per il caching di oggetti in memoria che fornisce rapido accesso ai dati memorizzati nella cache. Per saperne di più su Memcache, consulta la panoramica di Memcache.
Il pattern memcache
Memcache viene in genere utilizzato con il seguente pattern:
- L'applicazione riceve una query dall'utente o dall'applicazione.
- L'applicazione verifica se i dati necessari per soddisfare la query si trovano nella memcache.
- Se i dati si trovano in memcache, l'applicazione li utilizza.
- Se i dati non sono in memcache, l'applicazione esegue una query su Datastore e memorizza i risultati in memcache per le richieste future.
Lo pseudocodice riportato di seguito rappresenta una tipica richiesta di memcache:
ndb utilizza internamente memcache per velocizzare le query. Tuttavia, se vuoi, puoi anche aggiungere esplicitamente chiamate memcache per avere un maggiore controllo sugli aumenti di velocità.
Memorizzazione nella cache dei dati
L'esempio seguente mostra diversi modi per impostare i valori in memcache utilizzando l'API Python.
Per saperne di più sui metodi add()
, set_multi()
e set()
, consulta la
documentazione dell'API Python memcache.
Modifica di guestbook.py
per utilizzare memcache
L'applicazione Guestbook interroga Datastore a ogni richiesta (tramite ndb, quindi ottiene già alcuni miglioramenti della velocità di memcache). Puoi modificare l'applicazione Guestbook per utilizzare memcache in modo esplicito prima di ricorrere all'interrogazione di Datastore.
Innanzitutto, importiamo il modulo memcache e creiamo il metodo che controlla memcache prima di eseguire una query.
A questo punto, separeremo l'interrogazione e la creazione dell'HTML per la pagina. Quando non troviamo la cache, chiameremo questo metodo per interrogare Datastore e creare la stringa HTML che memorizzeremo in memcache.
Infine, aggiorneremo il gestore MainPage
per chiamare il metodo get_greetings() e visualizzare alcune statistiche sul numero di volte in cui la cache è stata utilizzata o meno.