Golang levelDB 结构

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


我能够将“密钥”放入和获取到数据库中。但是,我想知道 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 以使其工作吗?


繁星点点滴滴
浏览 175回答 1
1回答

一只名叫tom的猫

levelDB仅支持字符串/字节数组作为键和值。这实际上是一个非常聪明的功能,因为它在应用程序级别保持复杂数据结构的序列化。要序列化您的Thm结构,如果您不需要其他语言的应用程序来读取值,您可以尝试gob 包,如果您需要其他语言可以访问序列化数据,则可以尝试使用 protobufs、json 或 msgpack。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go