【问题标题】:Golang levelDB structGolang levelDB 结构
【发布时间】:2015-01-05 21:47:27
【问题描述】:

我正在尝试使用以下 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 以使其工作吗?

谢谢

【问题讨论】:

    标签: struct go leveldb


    【解决方案1】:

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

    【讨论】:

    • 谢谢。我猜 gob 包可能是目前唯一的选择:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 2023-03-30
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多