go redis存储结构体
时间: 2023-10-30 13:05:26 浏览: 167
在Go中使用Redis存储结构体可以通过将结构体序列化为字符串,再将其作为value存储到Redis中。常用的序列化方式有JSON、Gob、MsgPack等。以下是一个示例代码,使用JSON将结构体存储到Redis中:
```go
import (
"encoding/json"
"github.com/go-redis/redis"
)
type User struct {
ID int
Name string
Age int
}
func main() {
// 连接Redis
client := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
})
// 实例化一个User
user := User{
ID: 1,
Name: "Alice",
Age: 18,
}
// 将结构体序列化为JSON字符串
jsonString, err := json.Marshal(user)
if err != nil {
panic(err)
}
// 将JSON字符串存储到Redis中
err = client.Set("user:1", jsonString, 0).Err()
if err != nil {
panic(err)
}
// 从Redis中获取值并反序列化为结构体
jsonString, err = client.Get("user:1").Bytes()
if err != nil {
panic(err)
}
var retrievedUser User
err = json.Unmarshal(jsonString, &retrievedUser)
if err != nil {
panic(err)
}
// 输出结果
fmt.Printf("%+v\n", retrievedUser)
}
```
在这个示例中,我们使用了Go语言中的`encoding/json`包将结构体序列化为JSON字符串,并使用`github.com/go-redis/redis`这个第三方库将其存储到Redis中。从Redis中获取值时,我们同样使用了该库的`Get`方法,并将结果反序列化为结构体。
阅读全文