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