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.