1 回答
TA贡献2039条经验 获得超7个赞
使用gob、json或类似的编码包将结构值编码为 []byte 。将 []byte 存储在 Redis 中。获取数据时逆向过程。
假设 Redis 客户端具有Set和Get方法,使用 JSON 包的代码将如下所示:
func set(c *RedisClient, key string, value interface{}) error {
p, err := json.Marshal(value)
if err != nil {
return err
}
return c.Set(key, p)
}
func get(c *RedisClient, key string, dest interface{}) error {
p, err := c.Get(key)
if err != nil {
return err
}
return json.Unmarshal(p, dest)
}
像这样使用它来保存一个值:
var v someType
if err := set(c, key, v); err != nil {
// handle error
}
并像这样检索一个值。请注意,指向该值的指针会传递给get.
var v someType
if err := get(c, key, &v); err != nil {
// handle error
}
需要根据您使用的 Redis 客户端调整详细信息。
只要应用程序使用相同的类型设置和获取给定键的值,这种方法就可以避免重复并且是类型安全的。
- 1 回答
- 0 关注
- 78 浏览
添加回答
举报