Package google.golang.org/appengine/memcache (v1.6.8)

Le package Memcache fournit un client pour le magasin valeur/clé en mémoire distribué d'App Engine destiné à de petits segments de données arbitraires.

Les opérations de base récupèrent et définissent des éléments, associés par une chaîne.

item0, err := memcache.Get(c, "key")
if err != nil && err != memcache.ErrCacheMiss {
    return err
}
if err == nil {
    fmt.Fprintf(w, "memcache hit: Key=%q Val=[% x]\n", item0.Key, item0.Value)
} else {
    fmt.Fprintf(w, "memcache miss\n")
}

et

item1 := &memcache.Item{
    Key:   "foo",
    Value: []byte("bar"),
}
if err := memcache.Set(c, item1); err != nil {
    return err
}

Variables

ErrCacheMiss, ErrCASConflict, ErrNoStats, ErrNotStored, ErrServerError

var (
	// ErrCacheMiss means that an operation failed
	// because the item wasn't present.
	ErrCacheMiss = errors.New("memcache: cache miss")
	// ErrCASConflict means that a CompareAndSwap call failed due to the
	// cached value being modified between the Get and the CompareAndSwap.
	// If the cached value was simply evicted rather than replaced,
	// ErrNotStored will be returned instead.
	ErrCASConflict = errors.New("memcache: compare-and-swap conflict")
	// ErrNoStats means that no statistics were available.
	ErrNoStats = errors.New("memcache: no statistics available")
	// ErrNotStored means that a conditional write operation (i.e. Add or
	// CompareAndSwap) failed because the condition was not satisfied.
	ErrNotStored = errors.New("memcache: item not stored")
	// ErrServerError means that a server error occurred.
	ErrServerError = errors.New("memcache: server error")
)

Gob, JSON

var (
	// Gob is a Codec that uses the gob package.
	Gob = Codec{gobMarshal, gobUnmarshal}
	// JSON is a Codec that uses the json package.
	JSON = Codec{json.Marshal, json.Unmarshal}
)

Fonctions

func Add

func Add(c context.Context, item *Item) error

La fonction Add écrit l'élément donné, si aucune valeur n'existe déjà pour sa clé. Affiche ErrNotStored si cette condition n'est pas remplie.

func AddMulti

func AddMulti(c context.Context, item []*Item) error

La fonction AddMulti est une version traitement par lot de la fonction Add. Une erreur appengine.MultiError peut être renvoyée.

func CompareAndSwap

func CompareAndSwap(c context.Context, item *Item) error

La fonction CompareAndSwap écrit l'élément donné qui a déjà été renvoyé par Get, si la valeur n'a pas été modifiée ni supprimée entre les appels Get et CompareAndSwap. La clé d'élément ne doit pas changer entre les appels, mais tous les autres champs d'élément peuvent être différents. Affiche ErrCASConflict si la valeur a été modifiée entre les appels. Affiche ErrNotStored si la valeur a été supprimée entre les appels.

func CompareAndSwapMulti

func CompareAndSwapMulti(c context.Context, item []*Item) error

La fonction CompareAndSwapMulti est une version par lot de la fonction CompareAndSwap. Une erreur appengine.MultiError peut être renvoyée.

func Delete

func Delete(c context.Context, key string) error

La fonction Delete supprime l'élément pour la clé donnée. Une erreur ErrCacheMiss est affichée si l'élément spécifié est introuvable. La longueur de la clé ne doit pas dépasser 250 octets.

func DeleteMulti

func DeleteMulti(c context.Context, key []string) error

La fonction DeleteMulti est une version traitement par lot de la fonction Delete. Si aucune clé ne peut être trouvée, une erreur appengine.MultiError est renvoyée. La longueur de chaque clé ne doit pas dépasser 250 octets.

func Flush

func Flush(c context.Context) error

La fonction Flush purge tous les éléments de Memcache.

func GetMulti

func GetMulti(c context.Context, key []string) (map[string]*Item, error)

La fonction GetMulti est une version traitement par lot de la fonction Get. L'objet map clé/élément affiché risque de présenter moins d'éléments que la tranche saisie, en raison des défauts de cache (miss) Memcache. La longueur de chaque clé ne doit pas dépasser 250 octets.

func Incrément

func Increment(c context.Context, key string, delta int64, initialValue uint64) (newValue uint64, err error)

La fonction Increment incrémente de manière atomique la valeur décimale dans la clé donnée par la valeur delta et affiche la nouvelle valeur. La valeur doit tenir dans une plage uint64. La valeur de dépassement positive est encapsulée et la valeur de dépassement négative est limitée à zéro. La valeur delta fournie peut être négative. Si la clé n'existe pas dans Memcache, la valeur initiale fournie est utilisée pour l'insérer de manière atomique avant que la valeur delta ne soit appliquée. La longueur de la clé ne doit pas dépasser 250 octets.

func IncrementExisting

func IncrementExisting(c context.Context, key string, delta int64) (newValue uint64, err error)

La fonction IncrementExisting fonctionne comme la fonction Increment, mais suppose que la clé existe déjà dans Memcache et ne prend pas de valeur initiale. IncrementExisting peut permettre une économie de travail si le calcul de la valeur initiale est coûteux. Une erreur est affichée si l'élément spécifié est introuvable.

func PeekMulti

func PeekMulti(c context.Context, key []string) (map[string]*Item, error)

PeekMulti est une version en traitement par lot de Peek. Elle est semblable à la fonction GetMulti, mais renseigne également les objets Item.Timestamps.

func Set

func Set(c context.Context, item *Item) error

La fonction Set écrit l'élément donné, sans condition.

func SetMulti

func SetMulti(c context.Context, item []*Item) error

La fonction SetMulti est une version traitement par lot de la fonction Set. Une erreur appengine.MultiError peut être renvoyée.

Codec

type Codec struct {
	Marshal   func(interface{}) ([]byte, error)
	Unmarshal func([]byte, interface{}) error
}

Le type Codec correspond à une paire symétrique de fonctions qui met en œuvre un codec. Les éléments stockés ou extraits de Memcache à l'aide d'un Codec présentent des valeurs classées ou non.

Toutes les méthodes fournies pour Codec se comportent de manière analogue à la fonction du package portant le même nom.

func (Codec) Add

func (cd Codec) Add(c context.Context, item *Item) error

La fonction Add écrit l'élément donné, si aucune valeur n'existe déjà pour sa clé. Affiche ErrNotStored si cette condition n'est pas remplie.

func (Codec) AddMulti

func (cd Codec) AddMulti(c context.Context, items []*Item) error

La fonction AddMulti est une version traitement par lot de la fonction Add. Une erreur appengine.MultiError peut être renvoyée.

func (Codec) CompareAndSwap

func (cd Codec) CompareAndSwap(c context.Context, item *Item) error

La fonction CompareAndSwap écrit l'élément donné qui a déjà été renvoyé par Get, si la valeur n'a pas été modifiée ni supprimée entre les appels Get et CompareAndSwap. La clé d'élément ne doit pas changer entre les appels, mais tous les autres champs d'élément peuvent être différents. Affiche ErrCASConflict si la valeur a été modifiée entre les appels. Affiche ErrNotStored si la valeur a été supprimée entre les appels.

func (Codec) CompareAndSwapMulti

func (cd Codec) CompareAndSwapMulti(c context.Context, items []*Item) error

La fonction CompareAndSwapMulti est une version par lot de la fonction CompareAndSwap. Une erreur appengine.MultiError peut être renvoyée.

func (Codec) Get

func (cd Codec) Get(c context.Context, key string, v interface{}) (*Item, error)

La fonction Get récupère l'élément pour la clé donnée et décode la valeur obtenue en v. Une erreur ErrCacheMiss est affichée en cas de défaut de cache (miss) Memcache. La clé ne doit pas dépasser 250 octets.

func (Codec) Set

func (cd Codec) Set(c context.Context, item *Item) error

La fonction Set écrit l'élément donné, sans condition.

func (Codec) SetMulti

func (cd Codec) SetMulti(c context.Context, items []*Item) error

La fonction SetMulti est une version traitement par lot de la fonction Set. Une erreur appengine.MultiError peut être renvoyée.

Élément

type Item struct {
	// Key is the Item's key (250 bytes maximum).
	Key string
	// Value is the Item's value.
	Value []byte
	// Object is the Item's value for use with a Codec.
	Object interface{}
	// Flags are server-opaque flags whose semantics are entirely up to the
	// App Engine app.
	Flags uint32
	// Expiration is the maximum duration that the item will stay
	// in the cache.
	// The zero value means the Item has no expiration time.
	// Subsecond precision is ignored.
	// This is not set when getting items.
	Expiration time.Duration

	// ItemTimestamps are server values only returned when calling Peek and PeekMulti.
	// The timestamps are nil when calling Get and GetMulti.
	Timestamps ItemTimestamps
	// contains filtered or unexported fields
}

Le type Item est l'unité des requêtes de type Get et Set de Memcache.

func Get

func Get(c context.Context, key string) (*Item, error)

La fonction Get récupère l'élément de la clé donnée. Renvoie une erreur ErrCacheMiss en cas de défaut de cache (miss) Memcache. La longueur de la clé ne doit pas dépasser 250 octets.

func Peek

func Peek(c context.Context, key string) (*Item, error)

La fonction Peek récupère l'élément pour la clé donnée et renseigne également Item.Timestamps. Renvoie une erreur ErrCacheMiss en cas de défaut de cache (miss) Memcache. La longueur de la clé ne doit pas dépasser 250 octets.

ItemTimestamps

type ItemTimestamps struct {
	// Expiration is related to Item.Expiration but it is a Time (not a Duration),
	// provided by the server. It is not meant to be set by the user.
	Expiration *time.Time
	// LastAccess is the last time the Item was accessed.
	LastAccess *time.Time
}

Les éléments ItemTimestamp sont des horodatages éventuellement fournis par le serveur. Voir Peek et PeekMulti.

Statistiques

type Statistics struct {
	Hits     uint64 // Counter of cache hits
	Misses   uint64 // Counter of cache misses
	ByteHits uint64 // Counter of bytes transferred for gets

	Items uint64 // Items currently in the cache
	Bytes uint64 // Size of all items currently in the cache

	Oldest int64 // Age of access of the oldest item, in seconds
}

Le type Statistics représente un ensemble de statistiques relatives au cache mémoire. Il peut inclure des éléments qui ont expiré, mais qui n'ont pas encore été supprimés du cache.

func Stats

func Stats(c context.Context) (*Statistics, error)

La fonction Stats extrait les statistiques actuelles de Memcache.