2013-04-20 19 views
6

Sto cercando di usare "AppEngine/memcache" per memorizzare i dati nella cache, campo Valore di memcache.Item è [] byteGo: come convertire struct in [] byte?

Come faccio a convertire una struct per [] byte per la memorizzazione di esso?

ad esempio:

type Link struct { 
    Files []string 
} 

risposta

9

Vedere il tipo memcache.Codec, questo può essere utilizzato per convertire elementi di memcache. Il pacchetto appengine/memcache ha due codec già preparati, memcache.Gob e memcache.JSON. Si utilizzano questi codec anziché la chiamata diretta per archiviare e recuperare elementi dalla cache, ad esempio in questo modo per un oggetto codificato con gob:

item := &memcache.Item{ 
     Key: myCacheKey, 
     Object: &myLinkVar, 
    } 
    err := memcache.Gob.Set(context, item) 
+0

Che cosa è 'contesto' in questo esempio? –

2

Il pacchetto encoding/gob è probabilmente la scelta migliore.

È inoltre possibile utilizzare il pacchetto encoding/json.

Se si utilizza encoding/json si ottiene il vantaggio di poter leggere i valori da lingue diverse da Go.

Se si utilizza encoding/gob si ottiene più velocità.

Problemi correlati