Golang levelDB结构

时间:2015-01-05 21:47:27

标签: struct go leveldb

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

我能够将“密钥”放入数据库。 但是,我想知道值是否可以是一个结构,如:

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)转换为[]字节类型。

如果您有使用levelDB的经验,可以帮助我完成这项工作的正常程度吗? 或者,我应该将struct转换为byte以使其工作吗?

谢谢

1 个答案:

答案 0 :(得分:0)

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