2012-11-07 15 views
16

içinde depolayın Bir nesneyi, GAE'nin memcache uygulamasında Go kullanarak saklamak istiyorum. Tabii https://developers.google.com/appengine/docs/go/memcache/overviewBir nesneyi GAE memcache öğesinde Go

görevim başarılı olabilir hangi byte [] içine bir nesne, seri hale getirmek genel yolu vardır: gae belgeleri sadece burada bir [] byte nasıl depolanacağı gösterir. Ama memcache başvuru okuyarak, ben memcache Öğe bir "nesne" var bulundu:

memcache bir nesneyi saklamak için yerleşik bir tamirci gibi görünüyor
// Object is the Item's value for use with a Codec. 
Object interface{} 

. Ancak, gae belgeleri bir örnek kod sağlamamıştır.

Lütfen bana bir örnek gösterebilir misiniz? Teşekkürler.

cevap

24

Tamam, sadece kendim anladım. Memcache pkg iki yerleşik Codec: gob ve json vardır. Sadece (kendi Codec oluşturabilir veya elbette biri) bunlardan birini kullanın:

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} 

sayesinde tüm