go-redis 基于beego正确使用序列化存储数据和反序列化获取数据
安装go-redis // 安装命令 go get github.com/gomodule/redigo/redis // 导入使用 import( "github.com/gomodule/redigo/redis" ) // go操作redis文档 https://godoc.org/github.com/gomodule/redigo/redis
序列化存储数据和反序列化获取数据
var aType []models.ArticleType // redis 在就获取,不再就存储 // conn, err := redis.Dial("tcp", ":6379") // if err != nil { // beego.Info("redis连接失败") // } // defer conn.Close() // reply, err := conn.Do("set", "atype", aType) // if err != nil { // beego.Info("redis存储失败") // } // beego.Info(reply) // 序列化与发序列化 conn, err := redis.Dial("tcp", ":6379") if err != nil { beego.Info("redis连接失败") } defer conn.Close() ok, _ := redis.Bool(conn.Do("EXISTS", "atype")) beego.Info(ok) if ok == true { ReadBuffer, _ := redis.Bytes(conn.Do("get", "atype")) beego.Info(ReadBuffer) dec := gob.NewDecoder(bytes.NewReader(ReadBuffer)) err = dec.Decode(&aType) if err != nil { beego.Info("获取不到解码后的数据:", err) } beego.Info(aType) } else { // 查询 o.QueryTable("ArticleType").All(&aType) // redis存储序列化的数据 var buffer bytes.Buffer enc := gob.NewEncoder(&buffer) err = enc.Encode(aType) reply, err := conn.Do("set", "atype", buffer.Bytes()) if err != nil { beego.Info("redis存储失败") } beego.Info(reply) }
相关推荐
mickeychan 2020-09-17
cmsmdn 2020-05-25
gaochujia 2020-05-21
杨友山 2019-11-18
笑面依旧 2019-11-04
xiaoqiang 2019-07-01
xuebingnan 2019-06-29
leiyuqingjing 2019-06-21
aqudgv 2019-06-20