Usar a cache de memória

Esta página descreve como configurar e monitorizar o serviço de memcache para a sua aplicação através da consola. Google Cloud Também descreve como usar a API Go do memcache do App Engine para definir e obter valores em cache. Para saber mais sobre o memcache, leia a vista geral do memcache.

Configurar a cache de memória

  1. Aceda à página Memcache na Google Cloud consola.
    Aceda à página do Memcache
  2. Selecione o nível de serviço de memcache que quer usar:

    • Partilhada (predefinição): gratuita e oferece capacidade de cache com base no melhor esforço possível.
    • Dedicado: faturado por GB/hora do tamanho da cache e oferece uma capacidade de cache fixa atribuída exclusivamente à sua aplicação.

    Saiba mais acerca das classes de serviço disponíveis na Vista geral do Memcache.

Importar a API Go

Para importar o pacote memcache:

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

Colocar em cache e obter valores

Colocar um valor em cache

Use Add() para escrever um valor para uma chave se e apenas se não existir já um valor para a chave:

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

onde c é um appengine.Context.

Saiba mais sobre Add e outras funções para definir valores na referência da API Memcache.

Procurar valores em cache

Use Get() para obter o item de uma determinada chave:

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

Saiba mais sobre Get e outras funções para procurar valores na referência da API Memcache.

Exemplo

O exemplo seguinte demonstra como adicionar, definir e obter valores de Memcache usando a API Go.

Suponha que ctx é um 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)
}

Monitorização da memcache na Google Cloud consola

  1. Aceda à página Memcache na Google Cloud consola.
    Aceda à página da cache de memória
  2. Consulte os seguintes relatórios:
    • Nível de serviço do Memcache: mostra se a sua aplicação está a usar o nível de serviço partilhado ou dedicado. Se for proprietário do projeto, pode alternar entre os dois. Saiba mais sobre os níveis de serviço.
    • Rácio de resultados: mostra a percentagem de pedidos de dados que foram apresentados a partir da cache, bem como o número bruto de pedidos de dados que foram apresentados a partir da cache.
    • Itens na cache.
    • Idade do item mais antigo: a idade do item em cache mais antigo. Tenha em atenção que a antiguidade de um item é reposta sempre que é usado, seja lido ou escrito.
    • Tamanho total da cache.
  3. Pode realizar qualquer uma das seguintes ações:

    • Nova chave: adicione uma nova chave à cache.
    • Encontrar uma chave: obtenha uma chave existente.
    • Limpar cache: remove todos os pares de chave-valor da cache.
  4. (Apenas memcache dedicado) Consulte a lista de Chaves populares.

    • As "chaves frequentes" são chaves que recebem mais de 100 consultas por segundo (CPS) na memória cache.
    • Esta lista inclui até 100 teclas de atalho, ordenadas pela CPS mais elevada.

O que se segue?