44 lines
1.0 KiB
Go
44 lines
1.0 KiB
Go
package utils
|
|
|
|
// Keep (used in cmd/api/main.go)
|
|
|
|
// Cache utilities for Valkey Glide
|
|
import (
|
|
"context"
|
|
"log/slog"
|
|
"os"
|
|
"strconv"
|
|
|
|
glide "github.com/valkey-io/valkey-glide/go/v2"
|
|
"github.com/valkey-io/valkey-glide/go/v2/config"
|
|
)
|
|
|
|
func NewCache(logger *slog.Logger) *glide.Client {
|
|
user := os.Getenv("VALKEY_USER")
|
|
pass := os.Getenv("VALKEY_PASS")
|
|
host := os.Getenv("VALKEY_HOST")
|
|
port := os.Getenv("VALKEY_PORT")
|
|
p, err := strconv.Atoi(port)
|
|
|
|
if err != nil {
|
|
logger.Error("VALKEY_PORT is not a number", "error", err, "port", port)
|
|
panic(err)
|
|
}
|
|
|
|
config := config.NewClientConfiguration().WithAddress(&config.NodeAddress{Host: host, Port: p}).WithCredentials(config.NewServerCredentials(user, pass))
|
|
|
|
client, err := glide.NewClient(config)
|
|
if err != nil {
|
|
logger.Error("There was an error in glide.NewClient!", "err", err)
|
|
panic(err)
|
|
}
|
|
|
|
_, err = client.Ping(context.Background())
|
|
if err != nil {
|
|
logger.Error("There was an error pinging the client initially!", "err", err)
|
|
panic(err)
|
|
}
|
|
|
|
return client
|
|
}
|