Golang levelDB 结构

Golang levelDB struct

我正在尝试使用以下数据库 API:https://godoc.org/github.com/syndtr/goleveldb/leveldb# (基于简单文件 key/value 数据库)

我能够将 "key" 放入和获取到数据库中。 但是,我想知道 value 是否可以是一个结构,例如:

type Thm struct {
    Name string
    Age  int
}

然后,

var Tmp Thm
Tmp.Name = "Gon"
Tmp.Age = 33

db.Put([]byte("test3"), []byte(Tmp), nil)

现在,我得到的错误是“无法将 Tmp(类型 Thm)转换为类型 []byte。

如果您有使用 levelDB 的经验,您能帮我了解这通常是如何完成的吗? 或者,我是否应该将 struct 转换为 byte 才能使其正常工作?

谢谢

levelDB 仅支持 strings/byte 数组作为键和值。这实际上是一个非常聪明的功能,因为它在应用程序级别保持复杂数据结构的序列化。要序列化你的 Thm 结构,你可以尝试 gob package 如果你不需要其他语言的应用程序能够读取值,或者如果你需要 protobufs,json 或 msgpack其他语言可以访问序列化数据。