func (rc *RedisConnection) Close() error {
	return rc.conn.Close()
}
Close will close a single redis connection
package storage
import (
	"time"
	"github.com/garyburd/redigo/redis"
)
const (
	RedisOK = "OK"
)
type RedisStorage struct{}
type RedisPool struct {
	pool *redis.Pool
}
type RedisConnection struct {
	conn redis.Conn
}
func (rs *RedisStorage) NewPool(url, auth string) Pool {
	rp := RedisPool{
		pool: &redis.Pool{
			MaxIdle:     3,
			IdleTimeout: 240 * time.Second,
			Dial: func() (redis.Conn, error) {
				c, err := redis.Dial("tcp", url)
				if err != nil {
					return nil, err
				}
				if len(auth) == 0 {
					return c, err
				}
				if _, err := c.Do("AUTH", auth); err != nil {
					c.Close()
					return nil, err
				}
				return c, err
			},
			TestOnBorrow: func(c redis.Conn, t time.Time) error {
				_, err := c.Do("PING")
				return err
			},
		},
	}
	return rp
}
func (rp RedisPool) Close() error {
	return rp.pool.Close()
}
func (rp RedisPool) Get() Connection {
	rc := RedisConnection{
		conn: rp.pool.Get(),
	}
	return &rc
}
func (rc *RedisConnection) Err() error {
	return rc.conn.Err()
}