Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GO:如何使用redigo将结构保存和检索到redis_Go - Fatal编程技术网

GO:如何使用redigo将结构保存和检索到redis

GO:如何使用redigo将结构保存和检索到redis,go,Go,我正在使用GO并尝试在redis中保存和检索结构数组。我如何着手实施它 我有以下结构 type Resource struct { title string } 我正在使用以下代码保存资源 _, err := redigo.Do("lpush", <unique id>, <resource object>); \,err:=redigo.Do(“lpush”); 现在,我如何从redis检索结构对象数组。既然您要来回编写marsal代码,我建议使用@而不是G

我正在使用GO并尝试在redis中保存和检索结构数组。我如何着手实施它

我有以下结构

type Resource struct {
   title string
}
我正在使用以下代码保存资源

_, err := redigo.Do("lpush", <unique id>, <resource object>);
\,err:=redigo.Do(“lpush”);

现在,我如何从redis检索结构对象数组。

既然您要来回编写marsal代码,我建议使用@而不是Golfer的解决方案

以下是您可以做的示例:

package main

import (
    "encoding/json"
    "fmt"
)

type Emotions struct {
    Sad      bool
    Happy    Happy
    Confused int
}

type Happy struct {
    Money  int
    Moral  bool
    Health bool
}

func main() {

    emo := &Emotions{Sad: true}

    // retain readability with json
    serialized, err := json.Marshal(emo)

    if err == nil {
        fmt.Println("serialized data: ", string(serialized))
//serialized data:  {"Sad":true,"Happy":{"Money":0,"Moral":false,"Health":false},"Confused":0}
        //do redis transactions...
    }

    //retriving whatever value stored in your redis instance...

    var deserialized Emotions

    err = json.Unmarshal(serialized, &deserialized)

    if err == nil {
        fmt.Println("deserialized data: ", deserialized.Sad)
//deserialized data:  true
    }
}

现在,关于如何在redis上存储东西,这在很大程度上取决于您的数据。

您可以使用
编码/gob
将其转换为/从
[]字节
@rightføld true,但我会将其序列化为JSON对象,以使其更适合其他语言。