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

Il pacchetto memcache fornisce un client per l'archivio chiave-valore in memoria distribuito di App Engine per piccoli blocchi di dati arbitrari.

Le operazioni di base consentono di ottenere e impostare elementi, digitati da una stringa.

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")
}

e

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

Variabili

ErrCacheMiss, ErrCASConflitto, 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}
)

Funzioni

funzione Aggiungi

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

Aggiungi scrive l'elemento specificato, se non esiste già alcun valore per la relativa chiave. ErrNotStored viene restituito se questa condizione non è soddisfatta.

funzione AddMulti

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

AddMulti è una versione batch di Add. Potrebbe essere restituito appengine.MultiError.

funzione ConfrontaAndScambia

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

CompareAndSwap scrive l'elemento specificato che è stato restituito in precedenza da Get, se il valore non è stato modificato o rimosso tra le chiamate Get e ConfrontaAndExchange. La chiave dell'elemento non dovrebbe cambiare da una chiamata all'altra, ma tutti gli altri campi dell'elemento potrebbero essere diversi. ErrCASConflitto viene restituito se il valore è stato modificato tra le chiamate. ErrNotStored viene restituito se il valore è stato rimosso tra una chiamata e l'altra.

funzione ConfrontaAndScambiaMulti

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

CompareAndSwapMulti è una versione batch di CompareAndExchange. Potrebbe essere restituito appengine.MultiError.

funzione Elimina

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

Il tasto Canc elimina l'elemento per la chiave specificata. ErrCacheMiss viene restituito se non è possibile trovare l'elemento specificato. La chiave deve avere una lunghezza massima di 250 byte.

funzione DeleteMulti

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

DeleteMulti è una versione batch di Delete. Se non è possibile trovare una chiave, viene restituito un appengine.MultiError. Ogni chiave deve avere una lunghezza massima di 250 byte.

funzione Flush

func Flush(c context.Context) error

Flush svuota tutti gli elementi dalla cache memcache.

funzione GetMulti

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

GetMulti è una versione batch di Get. La mappa restituita dalle chiavi agli elementi potrebbe contenere meno elementi rispetto alla sezione di input, a causa dei fallimenti della cache memcache. Ogni chiave deve avere una lunghezza massima di 250 byte.

Funzione Increment

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

Aumenta atomicamente il valore decimale nella chiave specificata delta e restituisce il nuovo valore. Il valore deve rientrare in un uint64. Il overflow si aggrega e il underflow è limitato a zero. Il delta fornito può essere negativo. Se la chiave non esiste nella cache memcache, il valore iniziale fornito viene utilizzato per la compilazione atomica prima dell'applicazione del delta. La chiave deve avere una lunghezza massima di 250 byte.

funzione IncrementEsistente

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

IncrementExisting funziona come Increment, ma presuppone che la chiave esista già in memcache e non abbia un valore iniziale. IncrementExisting può far risparmiare lavoro se il calcolo del valore iniziale è costoso. Se non è possibile trovare l'elemento specificato, viene restituito un errore.

funzione PeekMulti

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

PeekMulti è una versione batch di Peek. È simile a GetMulti, ma popola anche Item.Timestamps.

Set funzioni

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

Il set scrive l'elemento specificato, senza condizioni.

funzioni SetMulti

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

SetMulti è una versione batch di Set. appengine.MultiError può essere restituito.

Codec

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

Il codec rappresenta una coppia simmetrica di funzioni che implementano un codec. Gli elementi archiviati in o recuperati da memcache utilizzando un codec hanno i propri valori sottoposti a marshall o non marshallizzati.

Tutti i metodi forniti per il codec si comportano in modo analogo alla funzione a livello di pacchetto con lo stesso nome.

func (Codec) Aggiungi

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

Aggiungi scrive l'elemento specificato, se non esiste già alcun valore per la relativa chiave. ErrNotStored viene restituito se questa condizione non è soddisfatta.

funzione (Codec) AddMulti

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

AddMulti è una versione batch di Add. Potrebbe essere restituito appengine.MultiError.

func (Codec) CompareAndExchange

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

CompareAndSwap scrive l'elemento specificato che è stato restituito in precedenza da Get, se il valore non è stato modificato o rimosso tra le chiamate Get e ConfrontaAndExchange. La chiave dell'elemento non dovrebbe cambiare da una chiamata all'altra, ma tutti gli altri campi dell'elemento potrebbero essere diversi. ErrCASConflitto viene restituito se il valore è stato modificato tra le chiamate. ErrNotStored viene restituito se il valore è stato rimosso tra una chiamata e l'altra.

funzione (Codec) CompareAndExchangeMulti

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

CompareAndSwapMulti è una versione batch di CompareAndExchange. Potrebbe essere restituito appengine.MultiError.

func (Codec) Get

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

Get ottiene l'elemento per la chiave specificata e decodifica il valore ottenuto in v. ErrCacheMiss viene restituito per un fallimento della cache memcache. La chiave deve avere una lunghezza massima di 250 byte.

Set funzioni (Codec)

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

Il set scrive l'elemento specificato, senza condizioni.

funzione (Codec) SetMulti

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

SetMulti è una versione batch di Set. appengine.MultiError può essere restituito.

Elemento

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
}

L'elemento è l'unità di recupero e impostazione di memcache.

funzione Recupero

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

Get ottiene l'elemento per la chiave specificata. ErrCacheMiss viene restituito in caso di fallimento della cache memcache. La chiave deve avere una lunghezza massima di 250 byte.

visualizzazione func

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

Peek recupera l'elemento per la chiave specificata e compila inoltre Item.Timestamps. ErrCacheMiss viene restituito in caso di fallimento della cache memcache. La chiave deve avere una lunghezza massima di 250 byte.

Timestamp Elementi

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
}

Gli elementi ItemTimestamp sono timestamp forniti facoltativamente dal server. Vedi Peek e PeekMulti.

Statistiche

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 statistiche rappresentano un insieme di statistiche relative alla cache memcache. Potrebbero essere inclusi elementi scaduti ma non ancora rimossi dalla cache.

statistiche func

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

Statistiche recupera le statistiche memcache attuali.