redis/redis-stack
To get started with Redis Stack using Docker, you first need to select a Docker image:
redis/redis-stack
contains both Redis Stack server and RedisInsight. This container is best for local development because you can use RedisInsight to visualize your data.
redis/redis-stack-server
provides Redis Stack but excludes RedisInsight. This container is best for production deployment.
In the default configuration, Redis does not require a password to authenticate clients. To provide basic security for your Redis Stack server, it is recommended to set a password using the requirepass directive. Configure this using an environment variable when starting the container:
To start Redis Stack server using the redis-stack
image, run the following command in your terminal:
docker run -d --name redis-stack -p 6379:6379 -p 8001:8001 -e REDIS_ARGS="--requirepass mypassword" redis/redis-stack:latest
You can then connect to the server using redis-cli
, just as you connect to any Redis instance.
If you don’t have redis-cli
installed locally, you can run it from the Docker container:
$ docker exec -it redis-stack redis-cli
The docker run
command above also exposes RedisInsight on port 8001. You can use RedisInsight by pointing your browser to http://localhost:8001.
Redis Stack supports the ability to configure multiple named users, each with their own password and access control configuration. Refer to the Redis Access Control List documentation for more information.
To persist your Redis data to a local path, specify -v
to configure a local volume. This command stores all data in the local directory local-data
:
$ docker run -v /local-data/:/data redis/redis-stack:latest
If you want to expose Redis Stack server or RedisInsight on a different port, update the left hand of portion of the -p
argument. This command exposes Redis Stack server on port 10001
and RedisInsight on port 13333
:
$ docker run -p 10001:6379 -p 13333:8001 redis/redis-stack:latest
By default, the Redis Stack Docker containers use internal configuration files for Redis. To start Redis with local configuration file, you can use the -v
volume options:
$ docker run -v `pwd`/local-redis-stack.conf:/redis-stack.conf -p 6379:6379 -p 8001:8001 redis/redis-stack:latest
To pass in arbitrary configuration changes, you can set any of these environment variables:
REDIS_ARGS
: extra arguments for Redis
REDISEARCH_ARGS
: arguments for RediSearch
REDISJSON_ARGS
: arguments for RedisJSON
REDISGRAPH_ARGS
: arguments for RedisGraph
REDISTIMESERIES_ARGS
: arguments for RedisTimeSeries
REDISBLOOM_ARGS
: arguments for RedisBloom
For example, here's how to use the REDIS_ARGS
environment variable to pass the requirepass
directive to Redis:
docker run -e REDIS_ARGS="--requirepass redis-stack" redis/redis-stack:latest
Here's how to set a retention policy for RedisTimeSeries:
docker run -e REDISTIMESERIES_ARGS="RETENTION_POLICY=20" redis/redis-stack:latest
docker pull redis/redis-stack