Utilizzo di memcache

Questa pagina descrive come configurare e monitorare il servizio memcache per la tua applicazione utilizzando la console Google Cloud. Descrive inoltre come utilizzare l'API Go memcache di App Engine per impostare e recuperare i valori memorizzati nella cache. Per saperne di più su memcache, consulta la Panoramica di Memcache.

Configurazione di memcache

  1. Vai alla pagina Memcache nella console Google Cloud.
    Vai alla pagina Memcache
  2. Seleziona il livello di servizio memcache che vuoi utilizzare:

    • Condivisa (impostazione predefinita): gratuita e fornisce capacità della cache secondo il criterio del "best effort".
    • Dedicata: viene fatturata in base ai GB/ora di dimensione della cache e offre una capacità della cache fissa assegnata esclusivamente alla tua applicazione.

    Scopri di più sulle classi di servizio disponibili nella Panoramica di Memcache.

Importazione dell'API Go

Per importare il pacchetto memcache:

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

Memorizzazione nella cache e recupero dei valori

Memorizzazione nella cache di un valore

Utilizza Add() per scrivere un valore per una chiave se e solo se non esiste già un valore per la chiave:

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

dove c è un appengine.Context.

Scopri di più su Add e su altre funzioni per l'impostazione dei valori nel Documentazione di riferimento dell'API Memcache.

Ricerca dei valori memorizzati nella cache

Utilizza Get() per ottenere l'elemento per una determinata chiave:

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

Scopri di più su Get e altre funzioni per la ricerca dei valori nel Riferimento all'API Memcache.

Esempio

L'esempio riportato di seguito mostra come aggiungere, impostare e recuperare i valori Memcache utilizzando l'API Go.

Supponiamo che ctx sia 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)
}

Monitoraggio di Memcache nella console Google Cloud

  1. Vai alla pagina Memcache nella console Google Cloud.
    Vai alla pagina Memcache
  2. Esamina i seguenti report:
    • Livello di servizio memcache: indica se la tua applicazione utilizza il livello di servizio condiviso o dedicato. Se sei un proprietario del progetto, puoi passare da una modalità all'altra. Scopri di più sui livelli di servizio.
    • Rapporto hit: mostra la percentuale di richieste di dati che sono state soddisfatte dalla cache, nonché il numero non elaborato di richieste di dati che sono state soddisfatte dalla cache.
    • Elementi nella cache.
    • Età elemento più vecchio: l'età dell'elemento meno recente memorizzato nella cache. Tieni presente che l'età di un elemento viene reimpostata ogni volta che viene utilizzato, letto o scritto.
    • Dimensione cache totale.
  3. Puoi eseguire una delle seguenti azioni:

    • Nuova chiave: aggiungi una nuova chiave alla cache.
    • Trova una chiave: recupera una chiave esistente.
    • Svuota cache: rimuovi tutte le coppie chiave-valore dalla cache.
  4. (Solo memcache dedicata) Consulta l'elenco delle Chiavi calde.

    • Le "Chiavi calde" sono chiavi che ricevono più di 100 query al secondo (QPS) nel memcache.
    • Questo elenco include fino a 100 tasti di scelta rapida, ordinati in base alla QPS più alta.

Passaggi successivi