redis.go 866 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package lxDb
  2. import (
  3. "fmt"
  4. "github.com/gomodule/redigo/redis"
  5. "os"
  6. "time"
  7. )
  8. // RedisPool Redis连接池
  9. var RedisPool *redis.Pool
  10. type RedisConfig struct {
  11. URL string
  12. MaxIdle int
  13. MaxActive int
  14. Password string
  15. }
  16. func InitRedis(conf RedisConfig) {
  17. if conf.URL == "" {
  18. RedisPool = nil
  19. fmt.Println("未配置Redis连接")
  20. return
  21. }
  22. RedisPool = &redis.Pool{
  23. MaxIdle: conf.MaxIdle,
  24. MaxActive: conf.MaxActive,
  25. IdleTimeout: 240 * time.Second,
  26. Wait: true,
  27. Dial: func() (redis.Conn, error) {
  28. c, err := redis.Dial("tcp", conf.URL, redis.DialPassword(conf.Password))
  29. if err != nil {
  30. return nil, err
  31. }
  32. return c, nil
  33. },
  34. }
  35. c := RedisPool.Get()
  36. defer c.Close()
  37. _, err := redis.String(c.Do("PING")) // Redis Ping: PONG
  38. if err != nil {
  39. fmt.Println("error while connecting redis:", err)
  40. os.Exit(-1)
  41. }
  42. }