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

Memcache paket menyediakan klien untuk penyimpanan nilai kunci dalam memori terdistribusi App Engine untuk potongan kecil data arbitrer.

Operasi dasar mendapatkan dan menetapkan item, yang dikunci oleh string.

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

dan

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

Variabel

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

Functions

func Add

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

Add akan menulis item yang ditentukan, jika tidak ada nilai untuk kuncinya. ErrNotStored ditampilkan jika kondisi tersebut tidak terpenuhi.

func AddMulti

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

AddMulti adalah versi batch Add. appengine.MultiError mungkin ditampilkan.

func CompareAndSwap

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

CompareAndSwap menulis item tertentu yang sebelumnya ditampilkan oleh Get, jika nilainya tidak diubah atau dikeluarkan antara panggilan Get dan CompareAndSwap. Kunci item tidak boleh berubah di antara panggilan, tetapi semua kolom item lainnya mungkin berbeda. ErrCASConflict ditampilkan jika nilai diubah di antara panggilan. ErrNotStored ditampilkan jika nilai dikeluarkan di antara panggilan.

func CompareAndSwapMulti

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

CompareAndSwapMulti adalah versi batch CompareAndSwap. appengine.MultiError mungkin ditampilkan.

func Delete

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

Delete akan menghapus item untuk kunci tertentu. ErrCacheMiss ditampilkan jika item yang ditentukan tidak dapat ditemukan. Panjang kunci tidak boleh lebih dari 250 byte.

func DeleteMulti

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

DeleteMulti adalah versi batch dari Delete. Jika kunci apa pun tidak dapat ditemukan, appengine.MultiError akan ditampilkan. Panjang setiap kunci maksimal 250 byte.

func Flush

func Flush(c context.Context) error

Flush akan membersihkan semua item dari memcache.

func GetMulti

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

GetMulti adalah versi batch dari Get. Peta yang ditampilkan dari kunci ke item mungkin memiliki lebih sedikit elemen daripada slice input, karena cache memcache tidak ditemukan. Panjang setiap kunci maksimal 250 byte.

func Increment

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

Increment secara atomik akan menambahkan nilai desimal dalam kunci yang diberikan berdasarkan delta dan menampilkan nilai baru. Nilai ini harus muat dalam uint64. Overflow akan berakhir, dan underflow dibatasi hingga nol. Delta yang diberikan mungkin negatif. Jika kunci tidak ada dalam memcache, nilai awal yang diberikan akan digunakan untuk mengisinya secara atomik sebelum delta diterapkan. Panjang kunci tidak boleh lebih dari 250 byte.

func IncrementExisting

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

IncrementExisting bekerja seperti Increment, tetapi mengasumsikan bahwa kunci tersebut sudah ada di memcache dan tidak mengambil nilai awal. IncrementExisting dapat menghemat pekerjaan jika menghitung nilai awal mahal. Error akan ditampilkan jika item yang ditentukan tidak dapat ditemukan.

func PeekMulti

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

PeekMulti adalah versi batch dari Peek. Ini mirip dengan GetMulti, tetapi juga mengisi Item.Timestamps.

func Set

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

Set menulis item yang diberikan, tanpa syarat.

func SetMulti

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

SetMulti adalah versi batch Set. appengine.MultiError mungkin ditampilkan.

Codec

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

Codec mewakili sepasang fungsi simetris yang mengimplementasikan codec. Item yang disimpan ke atau diambil dari memcache menggunakan Codec memiliki nilai yang disusun atau tidak disusun.

Semua metode yang disediakan untuk Codec berperilaku serupa dengan fungsi tingkat paket dengan nama yang sama.

func (Codec) Add

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

Add akan menulis item yang ditentukan, jika tidak ada nilai untuk kuncinya. ErrNotStored ditampilkan jika kondisi tersebut tidak terpenuhi.

func (Codec) AddMulti

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

AddMulti adalah versi batch Add. appengine.MultiError mungkin ditampilkan.

func (Codec) CompareAndSwap

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

CompareAndSwap menulis item tertentu yang sebelumnya ditampilkan oleh Get, jika nilainya tidak diubah atau dikeluarkan antara panggilan Get dan CompareAndSwap. Kunci item tidak boleh berubah di antara panggilan, tetapi semua kolom item lainnya mungkin berbeda. ErrCASConflict ditampilkan jika nilai diubah di antara panggilan. ErrNotStored ditampilkan jika nilai dikeluarkan di antara panggilan.

func (Codec) CompareAndSwapMulti

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

CompareAndSwapMulti adalah versi batch CompareAndSwap. appengine.MultiError mungkin ditampilkan.

func (Codec) Get

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

Mendapatkan item untuk kunci yang ditentukan dan mendekode nilai yang diperoleh ke v. ErrCacheMiss ditampilkan untuk cache memcache yang tidak ditemukan. Panjang kunci harus maksimal 250 byte.

func (Codec) Set

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

Set menulis item yang diberikan, tanpa syarat.

func (Codec) SetMulti

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

SetMulti adalah versi batch Set. appengine.MultiError mungkin ditampilkan.

Item

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
}

Item adalah unit memcache yang didapatkan dan ditetapkan.

func Get

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

Get mendapatkan item untuk kunci yang ditentukan. ErrCacheMiss ditampilkan untuk memcache cache yang tidak ditemukan. Panjang kunci tidak boleh lebih dari 250 byte.

func Peek

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

Peek mendapatkan item untuk kunci tertentu dan mengisi Item.Timestamps sebagai tambahan. ErrCacheMiss ditampilkan untuk cache memcache yang tidak ditemukan. Panjang kunci harus maksimal 250 byte.

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
}

ItemTimestamps adalah stempel waktu yang secara opsional disediakan oleh server. Lihat Peek dan PeekMulti.

Statistik

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
}

Statistik mewakili serangkaian statistik tentang cache memcache. Item tersebut dapat mencakup item yang telah kedaluwarsa tetapi belum dihapus dari cache.

func Stats

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

Statistik mengambil statistik memcache saat ini.