Esempi di Memcache

Questa pagina fornisce esempi di codice in Codice Python per l'utilizzo di Memcache. Memcache è un sistema distribuito ad alte prestazioni per il caching di oggetti in memoria che fornisce accesso rapido ai dati memorizzati nella cache. Per scoprire 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 sono in memcache.
    • Se i dati sono in memcache, l'applicazione li utilizza.
    • Se i dati non sono in memcache, l'applicazione esegue query sul datastore e memorizza i risultati in memcache per le richieste future.

Lo pseudocodice riportato di seguito rappresenta una richiesta memcache tipica:

def get_data():
    data = memcache.get('key')
    if data is not None:
        return data
    else:
        data = query_for_data()
        memcache.add('key', data, 60)
    return data

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 mostra diversi modi per impostare i valori in memcache utilizzando l'API Python.

# Add a value if it doesn't exist in the cache
# with a cache expiration of 1 hour.
memcache.add(key="weather_USA_98105", value="raining", time=3600)

# Set several values, overwriting any existing values for these keys.
memcache.set_multi(
    {"USA_98115": "cloudy", "USA_94105": "foggy", "USA_94043": "sunny"},
    key_prefix="weather_",
    time=3600
)

# Atomically increment an integer value.
memcache.set(key="counter", value=0)
memcache.incr("counter")
memcache.incr("counter")
memcache.incr("counter")

Per scoprire di più sui metodi add(), set_multi() e set(), consulta la documentazione dell'API Python memcache.