Redis Client On Mac
Redis client libraries are available in more than 50 programming languages. Choose the appropriate library based on your choice of programming language and follow the client documentation to connect to Redis. Below we demonstrate connecting Redis in Python, Java, and JavaScript (Node.js). Python Recommended library redis-py How to install. Redis GUI Client for Mac. Redis GUI Client for Mac. RedisInsight is the successor to RDBTools! RDBTools will reach EOL on 31st December 2019. Get RedisInsight here!
Redis uses a standard practice for its versioning: major.minor.patchlevel. An even minor marks a stable release, like 1.2, 2.0, 2.2, 2.4, 2.6, 2.8. Odd minors are used for unstable releases, for example 2.9.x releases are the unstable versions of what will be Redis 3.0 once stable.
Unstable
This is where all the development happens. Only for hard-core hackers. Use only if you need to test the latest features or performance improvements. This is going to be the next Redis release in a few months.Pre-release (6.2)
Redis 6.2 includes many new commands and improvements, but no big features. It mainly makes Redis more complete and addresses issues that have been requested by many users frequently or for a long time.Stable (6.0)
Redis 6.0 introduces SSL, the new RESP3 protocol, ACLs, client side caching, diskless replicas, I/O threads, faster RDB loading, new modules APIs and many more improvements.Docker Hub
It is possible to get Docker images of Redis from the Docker Hub. Multiple versions are available, usually updated in a short time after a new release is available.In the Cloud
Get a free-for-life Redis instance with Redis Cloud Essentials from Redis Labs, the home of Redis.
*Other versions
Old (5.0)
Redis 5.0 is the first version of Redis to introduce the new stream data type with consumer groups, sorted sets blocking pop operations, LFU/LRU info in RDB, Cluster manager inside redis-cli, active defragmentation V2, HyperLogLogs improvements and many other improvements. Redis 5 was release as GA in October 2018.See the release notes or download 5.0.10.
*Other
Historical downloads are still available on https://download.redis.io/.Scripts and other automatic downloads can easily access the tarball of the latest Redis stable version at https://download.redis.io/redis-stable.tar.gz, and its respective SHA256 sum at https://download.redis.io/redis-stable.tar.gz.SHA256SUM. The source code of the latest stable release is always browsable here, use the file src/version.h in order to extract the version in an automatic way.
*How to verify files for integrity
The Github repository redis-hashes contains a README file with SHA1 digests of released tarball archives. Note: the generic redis-stable.tar.gz tarball does not match any hash because it is modified to untar to the redis-stable directory.
*Installation
*From source code
Download, extract and compile Redis with:
The binaries that are now compiled are available in the src
directory. Run Redis with:
You can interact with Redis using the built-in client:
*From the official Ubuntu PPA
You can install the latest stable version of Redis from the redislabs/redis
package repository. Add the repository to the apt
index, update it and install:
*From Snapcraft
You can install the latest stable version of Redis from the Snapcraft marketplace:
Are you new to Redis? Try our online, interactive tutorial.
In this article, I will explain how to secure your Redis databases using SSL (Secure Sockets Layer). In production, it is a good practice to use SSL to protect the data that are moving between various computers (client applications and Redis servers). Transport Level Security (TLS) guarantees that only allowed applications/computers are connected to the database, and also that data is not viewed or altered by a middle man process.
You can secure the connections between your client applications and Redis cluster using:
- One-Way SSL: the client (your application) get the certificate from the server (Redis cluster), validate it, and then all communications are encrypted
- Two-Way SSL: (aka mutual SSL) here both the client and the server authenticate each other and validate that both ends are trusted.
In this article, I will focus on the Two-Way SSL, and using Redis Enterprise.
Prerequisites:
- A Redis Enterprise 5.4.x database, (my database is protected by the password
secretdb01
, and listening on port12000
) redis-cli
to run basic commands- Python, Node, and Java installed if you want to test various languages.
Simple Test
Let’s make sure that the database is available:
This should print the Server information.
1- Get the Certificate from Redis Cluster
You have access to the Redis Enterprise Cluster, you go to one of the nodes to retrieve the certificate (that is a self-generated one by default).
The cluster certificate is located at: /etc/opt/redislabs/proxy_cert.pem
.
You have to copy it on each client machine; note that once it is done you can use this certificate to connect using “One-Way SSL”, but not the purpose of this article.
In my demonstration I am using Docker and copy the certificate using this command from my host:
2- Generate a New Client Certificate
Using the Two-Way SSL you need to have a certificate for the client that will be used by Redis database proxy to trust the client.
In this article I will use a self-signed certificate using OpenSSL, in this example, we are creating a certificate for an application named app_001
.
You can create as many certificates as you want, or reuse this one for all servers/applications.
Open a terminal and run the following commands:
This command generate a new client key (client_key_001.pem
) and certificate (client_cert_001.pem
) with no passphrase.
3- Configure the Redis Database
The next step is to take the certificate and add it to the database you want to protect.
Let’s copy the certificate and paste it into the Redis Enterprise Web Console.
Copy the certificate in your clipboard:
Mac:
Linux:
Windows:
Go to the Redis Enterprise Admin Web Console and enable TLS on your database:
- Edit the database configuration
- Check TLS
- Select “Require TLS for All communications”
- Check “Enforce client authentication”
- Paste the certificate in the text area
- Click the Save button to save the certificate
- Click the Update button to save the configuration.
The database is now protected, and it is mandatory to use the SSL certificate to connect to it.
4- Connect to the Database using the Certificate
In all following examples, I am using a “self-signed” certificate, so I do not check the validity of the hostname.You should adapt the connections/TLS information based on your certificate configuration.
4.1 Using Redis-CLI
To connect to a SSL protected database using redis-cli
you have to use stunnel
.
Create a stunnel.conf
file with the following content:
Start stunnel using the command
This will start a process that listen to port 6380
and used as a proxy to the Redis Enterprise database on port 12000
.
4.2 Using Python
Using Python, you have to set the SSL connection parameters:
More information in the documentation “Using Redis with Python”.
4.3 Using Node.JS
For Node Redis, use the TLS library to configure the client connection:
More information in the documentation “Using Redis with Node.js”.
4.4 Using Java
In Java, to be able to connect using SSL, you have to install all the certificates in the Java environment using the keytool utility.
Create a keystore file that stores the key and certificate you have created earlier:
Redis Desktop Manager
As you can see the keystore is used to store the credentials associated with you client; it will be used later with the -javax.net.ssl.keyStore
system property in the Java application.
In addition to the keys tore, you also have to create a trust store, that is used to store other credentials for example in our case the redis cluster certificate.
Redis Client Tool
Create a trust store file and add the Redis cluster certificate to it
Redis Client Mac Gui
The trustore will be used later with the -javax.net.ssl.trustStore
system property in the Java application.
You can now run the Java application with the following environment variables:
For this example and simplicity, I will hard code these property in the Java code itself:
- line 8-12, the system environment variables are set to point to the keystore and trust store (this should be externalized)
- line 14, the Redis URL start with
rediss
with 2 s to indicate that the connection should be encrypted - line 17, set the database password
Redis Client On Mac Virtualbox
More information in the documentation “Using Redis with Java”.
Install Redis Client On Mac
Conclusion
Redis Gui Client For Mac
In this article, you have learned how to:
- retrieve the Redis Server certificate
- generate a client certificate
- protect your database to enforce transport level security (TLS) with 2 ways authentication
- connect to the database from
redis-cli
, Python, Node and Java