Questa pagina fornisce esempi di codice Python per l'utilizzo memcache. Memcache è un oggetto con memoria distribuita e ad alte prestazioni di memorizzazione nella cache che fornisce accesso rapido ai dati memorizzati nella cache. Per scoprire di più su memcache, leggi la relativa panoramica.
Pattern memcache
Memcache viene generalmente 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 cache memcache.
- Se i dati si trovano nella cache memcache, l'applicazione li utilizza.
- Se i dati non sono in memcache, l'applicazione esegue una query sul Datastore e archivia i risultati in memcache per richieste future.
Lo pseudocodice riportato di seguito rappresenta una tipica richiesta memcache:
ndb utilizza internamente memcache per accelerare le query. Tuttavia, se vuoi, puoi anche aggiungere esplicitamente chiamate memcache per ottenere un maggiore controllo sulle accelerazioni.
Memorizzazione nella cache dei dati
L'esempio seguente illustra diversi modi per impostare valori in memcache utilizzando l'API Python.
Per scoprire di più sui metodi add()
, set_multi()
e set()
, consulta le
documentazione dell'API Python Memcache.
Modifica di guestbook.py
per l'utilizzo di memcache in corso...
L'applicazione Guestbook esegue una query in Datastore su ogni richiesta (tramite ndb, quindi acquisisce già parte della cache accelerazioni). Puoi modificare l'applicazione Guestbook in modo che utilizzi memcache esplicitamente prima di ricorrere all'esecuzione di query sul datastore.
In primo luogo importeremo il modulo memcache e creeremo il metodo che controlla memcache prima di eseguire una query.
Successivamente separeremo l'esecuzione di query e la creazione del codice HTML della pagina. Quando non raggiungiamo la cache, chiamiamo questo metodo per eseguire una query sul Datastore e creare la stringa HTML che archivieremo in memcache.
Infine, aggiorneremo il gestore MainPage
in modo che chiami il metodo get_greetings() e visualizziamo alcune statistiche sul numero di volte in cui la cache è stata raggiunta o mancata.