Since testcontainers-go :material-tag: v0.20.0
The Testcontainers module for Redis.
Please run the following command to add the Redis module to your Go dependencies:
go get github.com/testcontainers/testcontainers-go/modules/redis
Creating a Redis container inside_block:runRedisContainer
The Redis module exposes one entrypoint function to create the containerr, and this function receives two parameters:
func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*RedisContainer, error)
context.Context
, the Go context.testcontainers.ContainerCustomizer
, a variadic argument for passing options.
When starting the Redis container, you can pass options in a variadic way to configure it.
!!!tip You can find all the available configuration and environment variables for the Redis Docker image on Docker Hub.
If you need to set a different Redis Docker image, you can use testcontainers.WithImage
with a valid Docker image
for Redis. E.g. testcontainers.WithImage("docker.io/redis:7")
.
{% include "../features/common_functional_options.md" %}
By default Redis saves snapshots of the dataset on disk, in a binary file called dump.rdb. You can configure Redis to have it save the dataset every N
seconds if there are at least M
changes in the dataset. E.g. WithSnapshotting(10, 1)
.
!!!tip Please check Redis docs on persistence for more information.
By default Redis saves snapshots of the dataset on disk, in a binary file called dump.rdb. You can configure Redis to have it save the dataset every N seconds if there are at least M changes in the dataset. E.g. WithLogLevel(LogLevelDebug)
.
!!!tip Please check Redis docs on logging for more information.
In the case you have a custom config file for Redis, it's possible to copy that file into the container before it's started. E.g. WithConfigFile(filepath.Join("testdata", "redis7.conf"))
.
This method returns the connection string to connect to the Redis container, using the default 6379
port.
Get connection string inside_block:connectionString
It's possible to use the Redis container with Redis-Stack. You simply need to update the image name.
Image for Redis-Stack inside_block:redisStackImage
Image for Redis-Stack Server inside_block:redisStackServerImage