En esta página se proporcionan ejemplos de código de Python para usar Memcache. Memcache es un sistema de almacenamiento en caché de objetos de memoria distribuido y de alto rendimiento que proporciona un acceso rápido a los datos almacenados en caché. Para obtener más información sobre Memcache, consulta el artículo Información general sobre Memcache.
Patrón de Memcache
Memcache se suele utilizar con el siguiente patrón:
- La aplicación recibe una consulta procedente del usuario o de la aplicación.
- La aplicación comprueba si los datos necesarios para satisfacer esta consulta se encuentran en Memcache.
- Si los datos se encuentran en Memcache, la aplicación los utiliza.
- Si los datos no están en Memcache, la aplicación consulta Datastore y almacena los resultados en Memcache para futuras solicitudes.
El pseudocódigo que aparece a continuación representa una solicitud habitual de Memcache:
ndb usa memcache internamente para acelerar las consultas. Sin embargo, si quieres, también puedes añadir llamadas a memcache explícitamente para tener más control sobre las aceleraciones.
Almacenar datos en caché
En el siguiente ejemplo se muestran varias formas de definir valores en Memcache mediante la API de Python.
Para obtener más información sobre los métodos add()
, set_multi()
y set()
, consulta la documentación de la API de Python de memcache.
Modificar guestbook.py
para usar memcache
La aplicación Libro de visitas consulta Datastore en cada solicitud (a través de ndb, por lo que ya obtiene algunas de las ventajas de velocidad de memcache). Puedes modificar la aplicación Guestbook para que use memcache explícitamente antes de recurrir a consultar Datastore.
Primero importaremos el módulo memcache y crearemos el método que comprueba memcache antes de ejecutar una consulta.
A continuación, separaremos la consulta y la creación del HTML de la página. Si no se accede a la caché, llamaremos a este método para consultar Datastore y crear la cadena HTML que almacenaremos en memcache.
Por último, actualizaremos el controlador MainPage
para llamar al método get_greetings() y mostrar algunas estadísticas sobre el número de veces que se ha accedido a la caché o no.