What is Go-redis

Redis is often referred to as a data structures server. What this means is that Redis provides access to mutable data structures via a set of commands, which are sent using a server-client model with TCP sockets and a simple protocol. So different processes can query and modify the same data structures in a shared way.

Github repository

https://github.com/redis/go-redis

Use Go-redis

With Caddy

You have to build your caddy instance including Souin and Go-redis using xcaddy (refer to the build caddy section).

  xcaddy build --with github.com/darkweak/souin/plugins/caddy --with github.com/darkweak/storages/go-redis/caddy
  

You will be able to use redis in your Caddyfile or JSON configuration file.

  {
    cache {
        ttl 1h
        redis {
            configuration {
                Addrs 127.0.0.1:6379
                DB 1
            }
        }
    }
}

route {
    cache {
        redis {
            url 192.168.1.2:6379
        }
    }
    respond "Hello HTTP cache"
}
  

Configuration

You can find the configuration for Redis here or check the values table below.

Values

Key nametyperequired
Addrs[]string✅
DBint❌
MaxActiveConnsint❌
MaxIdleConnsint❌
MaxRedirectsint❌
MaxRetriesint❌
MinIdleConnsint❌
PoolSizeint❌
Protocolint❌
ClientNamestring❌
IdentitySuffixstring❌
MasterNamestring❌
Passwordstring❌
SentinelUsernamestring❌
SentinelPasswordstring❌
Usernamestring❌
ContextTimeoutEnabledbool❌
DisableIndentitybool❌
PoolFIFObool❌
ReadOnlybool❌
RouteByLatencybool❌
RouteRandomlybool❌
ConnMaxIdleTimeDuration❌
ConnMaxLifetimeDuration❌
DialTimeoutDuration❌
MaxRetryBackoffDuration❌
MinRetryBackoffDuration❌
PoolTimeoutDuration❌
ReadTimeoutDuration❌
WriteTimeoutDuration❌