| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- package rds
- import (
- "github.com/go-redis/redis"
- "time"
- )
- const (
- TIMEOUT_READ = 3 * time.Second
- TIMEOUT_WRITE = 5 * time.Second
- TIMEOUT_POOL = 60 * time.Second
- SIZE_POOL = 10
- )
- func Connect(addr, password string, db int) (*redis.Client, error) {
- conn := redis.NewClient(&redis.Options{
- Addr: addr,
- Password: password,
- DB: db,
- DialTimeout: TIMEOUT_READ,
- ReadTimeout: TIMEOUT_READ,
- WriteTimeout: TIMEOUT_WRITE,
- PoolSize: SIZE_POOL,
- PoolTimeout: TIMEOUT_POOL,
- })
- _, err := conn.Ping().Result()
- if nil != err {
- return nil, err
- }
- return conn, nil
- }
- func ConnectCluster(addrs []string, password string, db int) (*redis.ClusterClient, error) {
- conn := redis.NewClusterClient(&redis.ClusterOptions{
- Addrs: addrs,
- Password: password,
- DialTimeout: TIMEOUT_READ,
- ReadTimeout: TIMEOUT_READ,
- WriteTimeout: TIMEOUT_WRITE,
- PoolSize: SIZE_POOL,
- PoolTimeout: TIMEOUT_POOL,
- })
- _, err := conn.Ping().Result()
- if nil != err {
- return nil, err
- }
- return conn, nil
- }
- func ConnectSentinel(addrs []string, master, password string, db int) (*redis.Client, error) {
- conn := redis.NewFailoverClient(&redis.FailoverOptions{
- MasterName: master,
- SentinelAddrs: addrs,
- Password: password,
- DB: db,
- DialTimeout: TIMEOUT_READ,
- ReadTimeout: TIMEOUT_READ,
- WriteTimeout: TIMEOUT_WRITE,
- PoolSize: SIZE_POOL,
- PoolTimeout: TIMEOUT_POOL,
- })
- if _, err := conn.Ping().Result(); err != nil {
- return nil, err
- }
- return conn, nil
- }
|