转到redis将hgetall结果转换为结构

sirbozc5  于 2021-06-10  发布在  Redis
关注(0)|答案(2)|浏览(618)

我正在从数据库获取数据 redis.HGetAll ,但没有找到将结果转换为我的结构的干净方法

var object struct {
    x int
}

result := redisClient.HGetAll(context.Background(), "the_h_key")

//TODO import the result content into the object

这个壮观的案子有什么作用吗?
现在我用的是 json 包(封送,然后解组到结构)。

6tr1vspr

6tr1vspr1#

如果您的数据结构不太复杂,那么使用redis保存数据的一种方便方法就是json。只是 json.Marhsal() 并将其另存为字符串 json.Unmarshal() 把那个字符串放进你的结构里。

polkgigr

polkgigr2#

redis的结果是map[string]字符串。对于结构中的每个字段,从Map中获取值,将字符串转换为字段类型并分配给字段。

var o object
 var err error

 o.x, err = strconv.Atoi(m["x"])
 if err != nil {
      // handle the error
 }

 ... repeat for other fields as needed

相关问题