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) }