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 un rapido accesso ai dati memorizzati nella cache. Per saperne di più su memcache, consulta la Panoramica di Memcache.
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 sono in memcache.
- Se i dati si trovano nella cache memcache, l'applicazione li utilizza.
- Se i dati non sono in memcache, l'applicazione esegue query su Datastore e memorizza i risultati in memcache per le richieste future.
Lo pseudocodice riportato di seguito rappresenta una tipica richiesta memcache:
NDB utilizza internamente memcache per velocizzare le query. Tuttavia, se vuoi, puoi anche aggiungere esplicitamente le chiamate memcache per avere un maggiore controllo sugli incrementi di velocità.
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 query su Datastore a ogni richiesta (tramite ndb, quindi sfrutta già alcuni degli acceleramenti di memcache). Puoi modificare l'applicazione Guestbook in modo che utilizzi esplicitamente memcache prima di ricorrere alla query di 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 otteniamo risultati dalla cache, chiamiamo questo metodo per eseguire query su Datastore e creare la stringa HTML che memorizzeremo in memcache.
Infine, aggiorneremo l'handler MainPage
per chiamare il metodo get_greetings() e visualizzare alcune statistiche sul numero di volte in cui la cache è stata richiamata o mancata.