31 lines
757 B
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
|
|
}
|