【发布时间】:2015-03-17 04:32:45
【问题描述】:
在 Golang 中将结构序列化和反序列化为字符串以及反之亦然的最佳方式(完整性和性能)是什么?
例如,如果我有这个结构:
struct Session {
Properties map[string]interface{}
Permissions []int64
}
我想将它存储在Redis 上并取回它。我试过保存,int和string,没问题,但是struct对象怎么存呢?
conn := redisConnectors.Get()
// set example
_, err := conn.Do(`SETEX`, `uid_key`, EXPIRE_SEC, user_id)
_, err = conn.Do(`SETEX`, `email_key`, EXPIRE_SEC, login_email)
// get example
user_id, err := redis.Int64(conn.Do(`GET`, `uid_key`))
login_email, err := redis.String(conn.Do(`GET`, `email_key`))
【问题讨论】:
-
作为参考,boj/redistore 库使用
encoding/gob或encoding/json将会话数据序列化到 Redis,并将原始 []byte 切片保存到 Redis:github.com/boj/redistore/blob/master/redistore.go#L313
标签: serialization go deserialization