1. Redis连接池

  1. package main
  2. import(
  3. "fmt"
  4. "github.com/garyburd/redigo/redis"
  5. )
  6. var pool *redis.Pool //创建redis连接池
  7. func init(){
  8. pool = &redis.Pool{ //实例化一个连接池
  9. MaxIdle:16, //最初的连接数量
  10. // MaxActive:1000000, //最大连接数量
  11. MaxActive:0, //连接池最大连接数量,不确定可以用0(0表示自动定义),按需分配
  12. IdleTimeout:300, //连接关闭时间 300秒 (300秒不使用自动关闭)
  13. Dial: func() (redis.Conn ,error){ //要连接的redis数据库
  14. return redis.Dial("tcp","localhost:6379")
  15. },
  16. }
  17. }
  18. func main(){
  19. c := pool.Get() //从连接池,取一个链接
  20. defer c.Close() //函数运行结束 ,把连接放回连接池
  21. _,err := c.Do("Set","abc",200)
  22. if err != nil {
  23. fmt.Println(err)
  24. return
  25. }
  26. r,err := redis.Int(c.Do("Get","abc"))
  27. if err != nil {
  28. fmt.Println("get abc faild :",err)
  29. return
  30. }
  31. fmt.Println(r)
  32. pool.Close() //关闭连接池
  33. }

运行结果:

  1. 200

Redis命令行:

  1. 127.0.0.1:6379> get abc
  2. "200"