Getting Started with Redis Enterprise Software using Docker
For testing purposes, you can run Redis Enterprise Software (RS) on Docker containers on Linux, Windows, or MacOS. The Redis Enterprise Software container represents a node in an RS Cluster. When deploying RS using Docker, there are a couple of common topologies:
Topology #1: The simplest topology is to run a single-node RS Cluster with a single container in a single host machine. This is best for local development or functional testing. Obviously, single-node clusters come with limited functionality in a few ways. For instance, in a single-node topology, RS can’t replicate to slave shards or provide any protection for failures. Simply follow the instruction in the Getting Started pages for Windows, macOS and Linux to build your development environment.
Topology #2: You may also run multi-node RS Cluster with multiple RS containers deployed to a single host machine. This topology is similar to the Topology #1 except that you run a multi-node cluster to develop and test against. The result is a system that is scale-minimized but similar to your production Redis Enterprise Software deployment. It is important to note that this topology isn’t ideal for performance-sensitive systems. In this topology, containers may interfere with each other under load. In addition, even though the RS cluster provides replication to protect against failures the cluster cannot protect you against the failure of the single host (because all nodes reside on the same physical host). With all this, Topology #2 (or other hybrid deployment methods in which you put multiple RS nodes in containers on the same physical host) is not recommended if you are looking for predictable performance or high availability.
Topology #3: You may also run multi-node RS Cluster with multiple RS containers each deployed to its own host machine. This topology minimizes interference between RS containers, so it performs more predictably than Topology #2.
To get started with a single Redis Enterprise Software container:
- Step 1: Install Docker Engine for your operating system
- Step 2: Run the RS Docker container
- Step 3: Set up a cluster
- Step 4: Create a new database
- Step 5: Connect to your database
Step 1: Install Docker Engine
Go to the Docker installation page for your operating system for detailed instructions about installing Docker Engine:
Step 2: Run the container
To pull and start the Redis Enterprise Software Docker container, run this
docker run command in the terminal or command-line for your operating system.
Note: On Windows, make sure Docker is configured to run Linux-based containers.
docker run -d --cap-add sys_resource --name rp -p 8443:8443 -p 9443:9443 -p 12000:12000 redislabs/redis
The Docker container with RS runs on your localhost with port 8443 open for HTTPS
connections, 9443 for REST API connections, and port 12000 open for redis client connections.
You can publish other ports
Step 3: Set up a cluster
In the web browser on the host machine, go to https://localhost:8443 to see the Redis Enterprise Software web console.
- Depending on your browser, you may see a certificate error. You can safely continue to the web console.
- If you see an error from nginx, try again after a few minutes.
Click Setup to start the node configuration steps.
In the Node Configuration settings, enter a cluster FQDN such as
cluster.local. Then click Next button.
Enter your license key, if you have one. If not, click the Next button to use the trial version.
Enter an email and password for the admin account for the web console.
These credentials are also used for connections to the REST API.
Click OK to confirm that you are aware of the replacement of the HTTPS SSL/TLS certificate on the node, and proceed through the browser warning.
Step 4: Create a database
Select “redis database” and the “single region” deployment, and click Next.
Enter a database name such as
Click Show advanced options and, in the Endpoint port number, enter
12000for the port number.
If port 12000 is not available, enter any available port number between 10000 to 19999 and connect to the database with that port number.
Click Activate to create your database
The database configuration is shown. When you see a green check mark, the database is activated and ready for you to use.
You now have a Redis database!
Step 5: Connect to your database
After you create the Redis database, you are ready to store data in your database. You can test connectivity to your database with:
- redis-cli - the built-in command-line tool
- A Hello World application using Python
Connecting using redis-cli
redis-cli is a simple command-line tool to interact with Redis database.
Use “docker exec” to switch your context into the Redis Enterprise Software container
docker exec -it rp bash
Run redis-cli, located in the /opt/redislabs/bin directory, to connect to the database port number, and store and retrieve a key in database1.
$ /opt/redislabs/bin/redis-cli -p 12000 127.0.0.1:16653> set key1 123 OK 127.0.0.1:16653> get key1 "123"
Connecting using Hello World application in Python
A simple python application running on the host machine, not the container, can also connect to database1.
Note: The following section assumes you already have Python and redis-py (python library for connecting to Redis) configured on the host machine running the container. You can find the instructions to configure redis-py on the github page for redis-py.
Create a new file called
redis_test.pywith this contents:
import redis r = redis.StrictRedis(host='localhost', port=12000, db=0) print ("set key1 123") print (r.set('key1', '123')) print ("get key1") print(r.get('key1'))
Run the redis_test.py application to store and retrieve a key:
If the connection is successful, the output of the application looks like this:
set key1 123 True get key1 123
Now you have a Redis Enterprise cluster ready to go. You can connect to it with a redis client to start loading it with data or you can use the memtier_benchmark Quick Start to check the cluster performance.