Redis & KeyDB

Ready-made go-redis v8 clients for a Redis cluster configured from the environment, and for single-node Redis or KeyDB.

Redis cluster — redis

import hwmredis "github.com/HiWay-Media/hwm-go-utils/redis"

hwmredis.Init()                 // reads REDIS_1 … REDIS_6
rdb := hwmredis.GetClient()     // *redis.ClusterClient
defer rdb.Close()

if err := rdb.Set(ctx, "session:42", payload, time.Hour).Err(); err != nil {
	return err
}
Variable Meaning
REDIS_1 … REDIS_6 Cluster node addresses (host:port); unset variables are skipped
REDIS_PASSWORD Optional password (requirepass / ACL default user)

Init fills the exported Brokers slice; you can also set hwmredis.Brokers yourself before calling GetClient.

Single node / KeyDB — keydb

import "github.com/HiWay-Media/hwm-go-utils/keydb"

rdb := keydb.NewKeyDBClient("keydb.internal:6379", os.Getenv("KEYDB_PASSWORD"), 0)
defer rdb.Close()

hits, err := rdb.Incr(ctx, "stats:hits").Result()
Function Auth DB
NewKeyDBClient(addr, password, db) password chosen
GetKeyDBClient(addr) none 0

Both return a standard *redis.Client, so the whole go-redis API is available.