在golang的项目中,若要频繁的用redis(或者其他类似的NoSQL)来存取数据,最好用redigo自带的池来管理连接。
不然的话,每当要操作redis时,建立连接,用完后再关闭,会导致大量的连接处于TIME_WAIT状态(redis连接本质上就是tcp)。
注:TIME_WAIT,也叫TCP半连接状态,会继续占用本地端口。
以下为redis连接池的golang实现:
import (
"github.com/garyburd/redigo/redis"
"github.com/astaxie/beego"
"time"
)
var (
// 定义常量
RedisClient *redis.Pool
REDIS_HOST string
RED