datastore: go.mercari.io/datastore/dsmiddleware/aememcache Index | Examples | Files

package aememcache

import "go.mercari.io/datastore/dsmiddleware/aememcache"

Package aememcache handles Put, Get etc to Datastore and provides caching by AppEngine's Memcache. How the cache is used is explained in the storagecache package's document.

Related document.

https://cloud.google.com/appengine/docs/standard/go/memcache/ https://godoc.org/go.mercari.io/datastore/dsmiddleware/storagecache

Code:

package main

import (
    "context"

    "go.mercari.io/datastore/aedatastore"
    "go.mercari.io/datastore/dsmiddleware/aememcache"
    "google.golang.org/appengine"
    "google.golang.org/appengine/aetest"
)

func appengineContext() (ctx context.Context, cancelFn func() error) {
    inst, err := aetest.NewInstance(&aetest.Options{StronglyConsistentDatastore: true, SuppressDevAppServerLog: true})
    if err != nil {
        panic(err)
    }
    cancelFn = inst.Close
    r, err := inst.NewRequest("GET", "/", nil)
    if err != nil {
        panic(err)
    }
    ctx = appengine.NewContext(r)

    return
}

func main() {
    ctx, cancelFn := appengineContext()
    go cancelFn()

    client, err := aedatastore.FromContext(ctx)
    if err != nil {
        panic(err)
    }
    defer client.Close()

    mw := aememcache.New()
    client.AppendMiddleware(mw)
}

Index

Examples

Package Files

aememcache.go doc.go option.go

func New Uses

func New(opts ...CacheOption) interface {
    datastore.Middleware
    storagecache.Storage
}

New AE Memcache middleware creates & returns.

type CacheOption Uses

type CacheOption interface {
    Apply(*cacheHandler)
}

A CacheOption is an cache option for a AE Memcache middleware.

func WithCacheKey Uses

func WithCacheKey(f func(key datastore.Key) string) CacheOption

WithCacheKey creates a ClientOption that specifies how to generate a cache key from datastore.Key.

func WithExcludeKinds Uses

func WithExcludeKinds(kinds ...string) CacheOption

WithExcludeKinds creates a ClientOption that selects the Kind unspecified as the cache target.

func WithExpireDuration Uses

func WithExpireDuration(d time.Duration) CacheOption

WithExpireDuration creates a ClientOption to expire at a specified time.

func WithIncludeKinds Uses

func WithIncludeKinds(kinds ...string) CacheOption

WithIncludeKinds creates a ClientOption that selects the Kind specified as the cache target.

func WithKeyFilter Uses

func WithKeyFilter(f storagecache.KeyFilter) CacheOption

WithKeyFilter creates a ClientOption that selects the Keys specified as the cache target.

func WithLogger Uses

func WithLogger(logf func(ctx context.Context, format string, args ...interface{})) CacheOption

WithLogger creates a ClientOption that uses the specified logger.

Package aememcache imports 8 packages (graph). Updated 2018-07-17. Refresh now. Tools for package owners.