Usa Memcache

En esta página, se explica cómo configurar y supervisar el servicio de Memcache en tu aplicación con Google Cloud Platform Console. También se explica cómo usar la API de Go de Memcache de App Engine para configurar y recuperar valores almacenados en caché. Si quieres aprender más sobre Memcache, consulta Descripción general de Memcache.

Configura Memcache

  1. Ve a la página de Memcache de Google Cloud Platform Console.
    Ir a la página de Memcache
  2. Selecciona el nivel de servicio de Memcache que quieres usar:

    • Compartido (predeterminado): es gratuito y proporciona capacidades de caché sobre la base del "mejor esfuerzo".
    • Dedicado: se factura por GB por hora de tamaño de caché y proporciona una capacidad de caché fija asignada de forma exclusiva a tu aplicación.

    Puedes encontrar más información sobre clases de servicio disponibles en Descripción general de Memcache.

Importa la API de Go

Haz esto para importar el paquete memcache:

import "google.golang.org/appengine/memcache"

Almacena en caché y recupera valores

Almacena un valor en caché

Usa Add() a fin de escribir un valor para una clave solo si no existe ningún valor dedicado a ella:

item := &memcache.Item{
        Key:   "[KEY]",
        Value: []byte("[VALUE]"),
}
memcache.Add(c, item)

donde c es appengine.Context.

Obtén más información sobre Add y otras funciones para establecer valores en Referencia de la API de Memcache.

Busca valores almacenados en caché

Usa Get() para obtener el elemento de una clave determinada:

memcache.Get(ctx, "[KEY]")

Obtén más información sobre Get y otras funciones para buscar valores en Referencia de la API de Memcache.

Ejemplo

En el ejemplo que aparece a continuación, se muestra cómo agregar, configurar y obtener valores de Memcache mediante la API de Go.

Supón que ctx es appengine.Context.

// Create an Item
item := &memcache.Item{
	Key:   "lyric",
	Value: []byte("Oh, give me a home"),
}
// Add the item to the memcache, if the key does not already exist
if err := memcache.Add(ctx, item); err == memcache.ErrNotStored {
	log.Infof(ctx, "item with key %q already exists", item.Key)
} else if err != nil {
	log.Errorf(ctx, "error adding item: %v", err)
}

// Change the Value of the item
item.Value = []byte("Where the buffalo roam")
// Set the item, unconditionally
if err := memcache.Set(ctx, item); err != nil {
	log.Errorf(ctx, "error setting item: %v", err)
}

// Get the item from the memcache
if item, err := memcache.Get(ctx, "lyric"); err == memcache.ErrCacheMiss {
	log.Infof(ctx, "item not in the cache")
} else if err != nil {
	log.Errorf(ctx, "error getting item: %v", err)
} else {
	log.Infof(ctx, "the lyric is %q", item.Value)
}

Supervisa Memcache en Google Cloud Platform Console

  1. Ve a la página de Memcache de Google Cloud Platform Console.
    Ir a la página de Memcache
  2. Consulta los informes siguientes:
    • Nivel de servicio de Memcache: muestra si tu aplicación usa el nivel de servicio Compartido o Dedicado. Si eres el propietario del proyecto, puedes elegir entre los dos. Obtén más información sobre los niveles de servicio.
    • Proporción de aciertos: muestra un porcentaje y los números sin procesar de los aciertos y los errores de Memcache.
    • Elementos en la caché
    • Edad del elemento más antiguo: la edad del elemento almacenado en caché más antiguo. Ten en cuenta que la edad de un elemento se restablece cada vez que se usa en operaciones de lectura o de escritura.
    • Tamaño total de la caché
  3. Puedes tomar cualquiera de las medidas siguientes:

    • Clave nueva: agrégale una clave a la caché.
    • Encontrar una clave: recupera una clave existente.
    • Limpiar caché: quita todos los pares clave-valor de la caché.
  4. (Solo para Memcache exclusiva) Consulta la lista de claves populares.

    • Las "claves populares" son claves que reciben más de 100 consultas por segundo (QPS) en Memcache.
    • La lista incluye hasta 100 claves populares ordenadas por mayor cantidad de QPS.
    • Consulta el artículo Prácticas recomendadas sobre App Engine Memcache para obtener sugerencias sobre cómo distribuir las cargas de forma más uniforme en el espacio de claves.

Pasos siguientes

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Entorno estándar de App Engine para Go