lmseohy 2020-01-11
安装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)
}