package data import ( "context" "ky-go-kratos/app/ucenter/internal/conf" "time" "github.com/go-kratos/kratos/v2/log" "github.com/redis/go-redis/v9" ) func NewRedis(c *conf.Data, db int) *redis.Client { rdb := redis.NewClient(&redis.Options{ Addr: c.Redis.Addr, Password: c.Redis.Password, DB: db, DialTimeout: c.Redis.DialTimeout.AsDuration(), ReadTimeout: c.Redis.ReadTimeout.AsDuration(), WriteTimeout: c.Redis.WriteTimeout.AsDuration(), }) timeout, cancelFunc := context.WithTimeout(context.Background(), time.Second*2) defer cancelFunc() err := rdb.Ping(timeout).Err() if err != nil { log.Fatalf("redis connect error: %v", err) } log.Info("redis", "connected to redis", c.Redis.Addr) return rdb }