diff --git a/cache/redis/redis.go b/cache/redis/redis.go index c62fccee..1cb359e8 100644 --- a/cache/redis/redis.go +++ b/cache/redis/redis.go @@ -7,7 +7,7 @@ // @license http://github.com/astaxie/beego/blob/master/LICENSE // // @authors astaxie -package cache +package redis import ( "encoding/json" @@ -46,23 +46,21 @@ func (rc *RedisCache) do(commandName string, args ...interface{}) (reply interfa // Get cache from redis. func (rc *RedisCache) Get(key string) interface{} { - v, err := rc.do("GET", key) - if err != nil { - return nil + if v, err := rc.do("GET", key); err == nil { + return v } - - return v + return nil } // put cache to redis. func (rc *RedisCache) Put(key string, val interface{}, timeout int64) error { - _, err := rc.do("SET", key, val) - if err != nil { - return nil + var err error + if _, err = rc.do("SET", key, val); err != nil { + return err } - _, err = rc.do("HSET", rc.key, key, true) - if err != nil { - return nil + + if _, err = rc.do("HSET", rc.key, key, true); err != nil { + return err } _, err = rc.do("EXPIRE", key, timeout) return err @@ -70,9 +68,9 @@ func (rc *RedisCache) Put(key string, val interface{}, timeout int64) error { // delete cache in redis. func (rc *RedisCache) Delete(key string) error { - _, err := rc.do("DEL", key) - if err != nil { - return nil + var err error + if _, err = rc.do("DEL", key); err != nil { + return err } _, err = rc.do("HDEL", rc.key, key) return err @@ -85,8 +83,7 @@ func (rc *RedisCache) IsExist(key string) bool { return false } if v == false { - _, err := rc.do("HDEL", rc.key, key) - if err != nil { + if _, err = rc.do("HDEL", rc.key, key); err != nil { return false } } @@ -108,10 +105,12 @@ func (rc *RedisCache) Decr(key string) error { // clean all cache in redis. delete this redis collection. func (rc *RedisCache) ClearAll() error { cachedKeys, err := redis.Strings(rc.do("HKEYS", rc.key)) + if err != nil { + return err + } for _, str := range cachedKeys { - _, err := rc.do("DEL", str) - if err != nil { - return nil + if _, err = rc.do("DEL", str); err != nil { + return err } } _, err = rc.do("DEL", rc.key) @@ -140,26 +139,21 @@ func (rc *RedisCache) StartAndGC(config string) error { c := rc.p.Get() defer c.Close() - if err := c.Err(); err != nil { - return err - } - return nil + return c.Err() } // connect to redis. func (rc *RedisCache) connectInit() { + dialFunc := func() (c redis.Conn, err error) { + c, err = redis.Dial("tcp", rc.conninfo) + return + } // initialize a new pool rc.p = &redis.Pool{ MaxIdle: 3, IdleTimeout: 180 * time.Second, - Dial: func() (redis.Conn, error) { - c, err := redis.Dial("tcp", rc.conninfo) - if err != nil { - return nil, err - } - return c, nil - }, + Dial: dialFunc, } } diff --git a/cache/redis/redis_test.go b/cache/redis/redis_test.go index fc751d03..de80d9f6 100644 --- a/cache/redis/redis_test.go +++ b/cache/redis/redis_test.go @@ -8,7 +8,7 @@ // @authors astaxie -package cache +package redis import ( "testing" @@ -20,7 +20,7 @@ import ( ) func TestRedisCache(t *testing.T) { - bm, err := cache.NewCache("redis", `{"conn": "127.0.0.1:6379"}`) + bm, err := cache.NewCache("redis", `{"conn": "127.0.0.1:6379"}`) if err != nil { t.Error("init err") } @@ -48,7 +48,7 @@ func TestRedisCache(t *testing.T) { t.Error("Incr Error", err) } - if v, _ := redis.Int(bm.Get("astaxie"), err); v != 2 { + if v, _ := redis.Int(bm.Get("astaxie"), err); v != 2 { t.Error("get err") } @@ -74,8 +74,8 @@ func TestRedisCache(t *testing.T) { if v, _ := redis.String(bm.Get("astaxie"), err); v != "author" { t.Error("get err") } - // test clear all - if err = bm.ClearAll(); err != nil { - t.Error("clear all err") - } + // test clear all + if err = bm.ClearAll(); err != nil { + t.Error("clear all err") + } }