memcache パッケージ

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

はじめに

memcache パッケージは、App Engine の分散メモリ内に任意の小さなデータチャンクを Key-Value として保存するクライアントを提供します。

基本的なオペレーションは、文字列をキーとする項目の取得と設定です。

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

および

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

インデックス

変数
func Add(c context.Context, item *Item) error
func AddMulti(c context.Context, item []*Item) error
func CompareAndSwap(c context.Context, item *Item) error
func CompareAndSwapMulti(c context.Context, item []*Item) error
func Delete(c context.Context, key string) error
func DeleteMulti(c context.Context, key []string) error
func Flush(c context.Context) error
func Get(c context.Context, key string) (*Item, error)
func GetMulti(c context.Context, key []string) (map[string]*Item, error)
func Increment(c context.Context, key string, delta int64, initialValue uint64) (newValue uint64, err error)
func IncrementExisting(c context.Context, key string, delta int64) (newValue uint64, err error)
func Set(c context.Context, item *Item) error
func SetMulti(c context.Context, item []*Item) error
type Codec
    func (cd Codec) Add(c context.Context, item *Item) error
    func (cd Codec) AddMulti(c context.Context, items []*Item) error
    func (cd Codec) CompareAndSwap(c context.Context, item *Item) error
    func (cd Codec) CompareAndSwapMulti(c context.Context, items []*Item) error
    func (cd Codec) Get(c context.Context, key string, v interface{}) (*Item, error)
    func (cd Codec) Set(c context.Context, item *Item) error
    func (cd Codec) SetMulti(c context.Context, items []*Item) error
type Item
type Statistics
    func Stats(c context.Context) (*Statistics, error)

変数

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

func Add

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

Add は、キーに値が存在しない場合、指定された項目を書き込みます。この条件を満たしていない場合、ErrNotStored が返されます。

func AddMulti

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

AddMulti は、Add.appengine のバッチ バージョンです。MultiError が返される場合があります。

func CompareAndSwap

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

Get と CompareAndSwap 呼び出しの間に値が変更または削除されていない場合、CompareAndSwap は、Get で取得済みの特定の項目を書き込みます。呼び出し間で項目のキーは変更されませんが、他の項目のフィールドは変更される場合があります。呼び出し間で値が変更された場合、ErrCASConflict が返されます。呼び出し間で値が削除された場合、ErrNotStored が返されます。

func CompareAndSwapMulti

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

CompareAndSwapMulti は、CompareAndSwap.appengine のバッチ バージョンです。MultiError が返される場合があります。

func Delete

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

Delete は、指定されたキーの項目を削除します。指定された項目が見つからないと、ErrCacheMiss が返されます。キーの長さは 250 バイト以下にする必要があります。

func DeleteMulti

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

DeleteMulti は、Delete のバッチ バージョンです。キーが見つからない場合、appengine.MultiError が返されます。各キーの長さは 250 バイト以下にする必要があります。

func Flush

func Flush(c context.Context) error

Flush は、memcache からすべての項目をフラッシュします。

func Get

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

Get は、指定されたキーの項目を取得します。memcache でキャッシュミスが発生すると、ErrCacheMiss が返されます。キーの長さは 250 バイト以下にする必要があります。

func GetMulti

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

GetMulti は、Get のバッチ バージョンです。memcache のキャッシュミスのため、キーから項目に返されるマップの要素が入力スライスより少なくなる場合があります。各キーの長さは 250 バイト以下にする必要があります。

func Increment

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

Increment は、指定されたキーの小数値をデルタでアトミックに増分し、新しい値を返します。値は uint64 になります。オバーフローはラップラウンドし、アンダーフローはゼロに制限されます。指定されたデルタは負の値になる場合があります。memcache にキーが存在しない場合、デルタが適用される前に、指定された初期値が使用され、アトミックに更新されます。キーの長さは 250 バイト以下にする必要があります。

func IncrementExisting

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

IncrementExisting は Increment に似ていますが、キーが memcache にすでに存在し、初期値を使用しないことが前提となります。初期値の計算に費用がかかる場合、IncrementExisting を使用するとコストを抑えることができます。指定された項目が見つからないと、エラーが返されます。

func Set

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

Set は、特定の項目を無条件に書き込みます。

func SetMulti

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

SetMulti は Setappengine のバッチ バージョンです。MultiError が返される場合があります。

type Codec

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

Codec は、コーデックを実行する関数の対称ペアを表します。Codec を使用して memcache に保存される項目または memcache から取得される項目は、マーシャリングまたはマーシャリング解除された値を持ちます。

Codec に適用されたすべてのメソッドは、同じ名前のパッケージ レベルの関数と同様に機能します。

func (Codec) Add

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

Add は、キーに値が存在しない場合、指定された項目を書き込みます。この条件を満たしていない場合、ErrNotStored が返されます。

func (Codec) AddMulti

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

AddMulti は、Add.appengine のバッチ バージョンです。MultiError が返される場合があります。

func (Codec) CompareAndSwap

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

Get と CompareAndSwap 呼び出しの間に値が変更または削除されていない場合、CompareAndSwap は、Get で取得済みの特定の項目を書き込みます。呼び出し間で項目のキーは変更されませんが、他の項目のフィールドは変更される場合があります。呼び出し間で値が変更された場合、ErrCASConflict が返されます。呼び出し間で値が削除された場合、ErrNotStored が返されます。

func (Codec) CompareAndSwapMulti

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

CompareAndSwapMulti は、CompareAndSwap.appengine のバッチ バージョンです。MultiError が返される場合があります。

func (Codec) Get

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

Get は、特定のキーアイテムを取得し、取得した値を v にデコードします。memcache キャッシュミスの場合、ErrCacheMiss を返します。キーの長さは 250 バイト以下にする必要があります。

func (Codec) Set

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

Set は、特定の項目を無条件に書き込みます。

func (Codec) SetMulti

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

SetMulti は Setappengine のバッチ バージョンです。MultiError が返される場合があります。

type 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
    // contains filtered or unexported fields
}

Item は、memcache get と set の単位です。

type Statistics

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
}

Statistics は、memcache キャッシュに関する一連の統計を表します。この統計には、キャッシュから削除されていない期限切れの項目が含まれている場合もあります。

func Stats

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

Stats は、現在の memcache 統計情報を取得します。

フィードバックを送信...

App Engine standard environment for Go