From b732cbbdc88e2cb557dc71a61997e47b9d955c93 Mon Sep 17 00:00:00 2001 From: lifei6671 Date: Wed, 25 Jul 2018 14:56:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BD=BF=E7=94=A8=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=81=9A=E7=BC=93=E5=AD=98=E6=97=B6=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E5=8F=8D=E5=BA=8F=E5=88=97=E5=8C=96=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cache/cache.go | 17 ++++++++++++++--- models/Blog.go | 7 +++++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/cache/cache.go b/cache/cache.go index a0e6fed4..4edcc2a7 100644 --- a/cache/cache.go +++ b/cache/cache.go @@ -4,7 +4,6 @@ import ( "github.com/astaxie/beego/cache" "time" "encoding/gob" - "fmt" "bytes" "errors" "github.com/astaxie/beego" @@ -27,11 +26,23 @@ func Get(key string,e interface{}) error { err := decoder.Decode(e) if err != nil { - fmt.Println("反序列化对象失败 ->", err) + beego.Error("反序列化对象失败 ->", err) } return err + }else if s,ok := val.(string); ok && s != "" { + + buf := bytes.NewBufferString(s) + + decoder := gob.NewDecoder(buf) + + err := decoder.Decode(e) + + if err != nil { + beego.Error("反序列化对象失败 ->", err) } - return errors.New("value is not []byte") + return err + } + return errors.New("value is not []byte or string") } func GetMulti(keys []string) []interface{} { diff --git a/models/Blog.go b/models/Blog.go index 93f3ff10..ae6776aa 100644 --- a/models/Blog.go +++ b/models/Blog.go @@ -104,11 +104,14 @@ func (b *Blog) Find(blogId int) (*Blog,error) { func (b *Blog) FindFromCache(blogId int) (blog *Blog,err error) { key := fmt.Sprintf("blog-id-%d",blogId); var temp Blog - if err := cache.Get(key,&temp); err == nil { + err = cache.Get(key,&temp); + if err == nil { b = &temp b.Link() - beego.Info("从缓存读取文章成功 ->", key) + beego.Debug("从缓存读取文章成功 ->", key) return b,nil + }else { + beego.Error("读取缓存失败 ->",err) } blog,err = b.Find(blogId)