package cache import ( "context" "errors" "time" goredis "github.com/redis/go-redis/v9" ) type redisCache struct { client *goredis.Client } func newRedisCache(client *goredis.Client) Cache { return &redisCache{client: client} } func (c *redisCache) Get(ctx context.Context, key string) ([]byte, error) { val, err := c.client.Get(ctx, key).Bytes() if errors.Is(err, goredis.Nil) { return nil, ErrNotFound } return val, err } func (c *redisCache) Set(ctx context.Context, key string, value []byte, ttl time.Duration) error { return c.client.Set(ctx, key, value, ttl).Err() } func (c *redisCache) Delete(ctx context.Context, key string) error { return c.client.Del(ctx, key).Err() }