Ejemplos de Memcache

En esta página, se proporcionan ejemplos de código en Código de Python para usar Memcache. Memcache es un sistema de almacenamiento de objetos en la memoria caché distribuida de alto rendimiento que brinda un acceso rápido a los datos almacenados en caché. Para obtener más información sobre Memcache, consulta la Descripción general de Memcache.

El patrón de Memcache

Por lo general, Memcache se usa con el patrón siguiente:

  • La aplicación recibe una consulta por parte del usuario o la aplicación.
  • La aplicación verifica si los datos necesarios para responder esa consulta están en Memcache.
    • Si los datos están en Memcache, la aplicación usa esos datos.
    • Si los datos no están en Memcache, la aplicación consulta el almacén de datos y almacena los resultados en Memcache para solicitudes futuras.

El siguiente pseudocódigo representa una solicitud típica de Memcache:

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 usa Memcache internamente para acelerar las consultas. Sin embargo, también puedes agregar de manera explícita las llamadas a Memcache para obtener un control mayor sobre los aumentos de velocidad.

Almacena datos en caché

En el siguiente ejemplo, se muestran varias maneras de establecer valores en Memcache mediante la API de 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")

A fin de obtener más información sobre los métodos add(), set_multi() y set(), consulta la documentación de la API de Python para Memcache.