Files
llink/go/internal/redis.go
T
2026-02-21 08:48:34 -08:00

47 lines
868 B
Go

package internal
import (
"context"
"fmt"
"log/slog"
"os"
"github.com/flowy-live/llink/internal/utils"
"github.com/redis/go-redis/v9"
)
func ConnectAndTestRedis(db int) *redis.Client {
redisHost := utils.MustGetEnv("REDIS_HOST")
if redisHost == "" {
slog.Error("must provide REDIS_HOST")
os.Exit(1)
}
redisAddr := fmt.Sprintf("%s:%s", redisHost, "6379")
rdb := redis.NewClient(&redis.Options{
Addr: redisAddr,
Password: "", // no password set
DB: db,
})
err := rdb.Set(context.Background(), "key", "value", 0).Err()
if err != nil {
panic(err)
}
val, err := rdb.Get(context.Background(), "key").Result()
if err != nil {
panic(err)
}
slog.Debug("redis test", "key", val)
if val != "value" {
panic("unexpected value")
}
err = rdb.Del(context.Background(), "key").Err()
if err != nil {
panic(err)
}
return rdb
}