17

Go を使用して GAE の memcache にオブジェクトを保存したいと考えています。gae のドキュメントでは、[] バイトをここに格納する方法のみを示しています: https://developers.google.com/appengine/docs/go/memcache/overview

もちろん、オブジェクトを [] バイトにシリアル化する一般的な方法があり、それによって私のタスクを達成できます。しかし、memcache リファレンスを読むと、memcache アイテムに「オブジェクト」があることがわかりました。

// Object is the Item's value for use with a Codec.
Object interface{}

これは、オブジェクトを memcache に保存する組み込みのメカニズムのようです。ただし、gae のドキュメントにはサンプル コードがありませんでした。

誰かが私に例を見せてもらえますか? 前もって感謝します

4

1 に答える 1

27

OK、私はそれを自分で理解しました。memcache pkgには、gobとjsonの2つのコーデックが組み込まれています。それらの1つを使用するだけです(またはもちろん、独自のコーデックを作成できます)。

var in, out struct {I int;}

// Put in into memcache
in.I = 100 
item := &memcache.Item {
   Key: "TestKey",
   Object: in, 
}   
memcache.Gob.Set(c, item)  // error checking omitted for convenience

// retrieve the value
memcache.Gob.Get(c, "TestKey", &out)
fmt.Fprint(w, out)  // will print {100}

皆さんありがとう

于 2012-11-07T07:22:30.880 に答える