go-kratos/app/ucenter/internal/data/redis.go

31 lines
757 B
Go

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
}