首页 > 其他 > 详细

go-redis 基于beego正确使用序列化存储数据和反序列化获取数据

时间:2020-01-11 19:02:17      阅读:217      评论:0      收藏:0      [点我收藏+]
1 安装go-redis
2 // 安装命令
3 go get github.com/gomodule/redigo/redis
4 // 导入使用
5 import(
6   "github.com/gomodule/redigo/redis"
7 )
8 // go操作redis文档
9 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)
    }

go-redis 基于beego正确使用序列化存储数据和反序列化获取数据

原文:https://www.cnblogs.com/Mishell/p/12180494.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!