Skip to content

Latest commit

 

History

History
86 lines (52 loc) · 3.12 KB

redis.md

File metadata and controls

86 lines (52 loc) · 3.12 KB

Redis

Since testcontainers-go :material-tag: v0.20.0

Introduction

The Testcontainers module for Redis.

Adding this module to your project dependencies

Please run the following command to add the Redis module to your Go dependencies:

go get github.com/testcontainers/testcontainers-go/modules/redis

Usage example

Creating a Redis container inside_block:runRedisContainer

Module Reference

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.

Container 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.

Image

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" %}

Snapshotting

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.

Log Level

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.

Redis configuration

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")).

Container Methods

ConnectionString

This method returns the connection string to connect to the Redis container, using the default 6379 port.

Get connection string inside_block:connectionString

Redis variants

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