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.

Cómo configurar 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 exclusivamente a tu aplicación.

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

Cómo importar la API de Go

Para importar el paquete memcache, sigue estas instrucciones:

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

Cómo almacenar en caché y recuperar valores

Almacena un valor en caché

Usa Add() a fin de escribir un valor para una clave solo si esa clave no tiene ningún valor existente:

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

donde c es un appengine.Context.

Puedes aprender más sobre Add y otras funciones para configurar valores en la 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]")

Puedes aprender más sobre Get y otras funciones para buscar valores en la 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.

Imagina que ctx es un 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)
}

Cómo supervisar 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 siguientes informes:
    • 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 siguientes medidas:

    • 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 Recomendaciones sobre Memcache de App Engine 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