How to Connect to Redis and Use The Redis Database
Traducciones al EspañolEstamos traduciendo nuestros guías y tutoriales al Español. Es posible que usted esté viendo una traducción generada automáticamente. Estamos trabajando con traductores profesionales para verificar las traducciones de nuestro sitio web. Este proyecto es un trabajo en curso.
Redis is an open-source NoSQL database used for in-memory storage of data structures. It works exceptionally well for caching, messaging, and other data storage contexts where quick, and low-latency storage is needed.
This tutorial gets you started using Redis. It explains how to connect to a Redis server that is located locally or remotely. The guide then goes into details on creating, populating, and saving a Redis database.
Before You Begin
Familiarize yourself with our Getting Started with Linode guide and complete the steps for setting your Linode’s hostname and timezone.
This guide uses
sudowherever possible. Complete the sections of our How to Secure Your Server guide to create a standard user account, harden SSH access, and remove unnecessary network services.
Update your system.
On Debian and Ubuntu, use the following command:
sudo apt update && sudo apt upgrade
On AlmaLinux, CentOS (8 or later), or Fedora, use the following command:
sudo dnf upgrade
Follow the instructions in our How to Install and Configure Redis on Ubuntu 20.04 guide to install a Redis server and command-line interface (CLI). Be sure to use the drop down menu at the top of that page to select your Linux distribution and get the appropriate steps.
/etc/redis/redis.confthroughout this guide with the actual location of your Redis server’s configuration file.
Generally, on Debian and Ubuntu, the location defaults to the above. On AlmaLinux, CentOS, and Fedora, the default location is usually
NoteThe steps in this guide are written for non-root users. Commands that require elevated privileges are prefixed with
sudo. If you’re not familiar with the
sudocommand, see our Linux Users and Groups guide.
How to Connect to Your Redis Server
You can use the Redis CLI tool to connect to a Redis server that is located locally and remotely. The steps in the following sections show you how to do both.
The examples that follow assume that you have created a user on the Redis server and have set up restricted access using the
requirepass configuration directive. For these examples, the Redis authentication and user configuration is shown below:
- File: /etc/redis/redis.conf
Connect to a Local Redis Server
The Redis CLI automatically connects to a local Redis server when you run the
redis-cli command. From there, you need to authenticate your connection to be able to view and modify the Redis database on the server.
Redis gives you the following two ways of authenticating your connection:
Using command-line options: In this case, you provide the username and password of your Redis user as part of the command to start the Redis CLI. Use the
--userflag to provide a username and the
--passflag to provide a password as shown below:
redis-cli --user example-user --pass password
Using the CLI interface: The CLI has an
AUTHcommand which authenticates a connection given a username and password. The command is used as follows:
AUTH example-user password
If the password provided via
AUTHcommand matches the password in the
/etc/redis/redis.confconfiguration file, the server replies with the
OKstatus code and starts accepting commands.
Both options above also support password-only authentication.
-aflag to authenticate by password on the command line:
redis-cli -a admin-password
AUTHcommand with only one argument to authenticate by password:
Connect to a Remote Redis Server
To connect to your Redis server remotely, you first need to open the appropriate port in your firewall and bind Redis to an address.
6379on your system’s firewall.
On Debian and Ubuntu, you can do so using UFW. See our How to Configure a Firewall with UFW guide for more information on using UFW. Typically, you can open the port using the following commands:
sudo ufw allow 6379 sudo ufw reload
On CentOS and Fedora, you can use FirewallD. Take a look at our guide Introduction to FirewallD on CentOS for more information on using FirewallD. You can usually open the port using the following commands:
sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent sudo firewall-cmd --reload
redis.confRedis configuration file, typically located at
/etc/redis/. Then, modify or add a line for
bind, indicating your server’s IP address or domain name.
The example below listens for both local and remote connections. Replace
192.0.2.0with your server’s IP address. You could, alternatively, replace this IP address with your server’s domain name.
- File: /etc/redis/redis.conf
1 2 3 4
# [...] bind 127.0.0.1 192.0.2.0 # [...]
Subsequent examples use this IP address for your server, so replace them as you go.
Once you have these configurations set up on the server, you can connect to Redis from a remote client.
Install the Redis CLI on the machine you want to access the server from, then execute the following command:
redis-cli -h 192.0.2.0 -p 6379
You can then authenticate using the Redis CLI interface, as shown in the previous section. Although you can still authenticate using command-line flags, it is recommended that you use the CLI interface instead for added security.
To verify your connection to the Redis server, you can execute the
PING Redis command:
The server responds with the output below, verifying that you are connected and authenticated.
How to Manage Redis Databases
Once you are connected to the Redis server, you can start working with the databases and keys that are stored. The following sections explain some of the most useful actions and commands you can use for managing your Redis databases.
Create a Redis Database
Redis does not have database creation in the same way you might see with SQL databases, like MySQL. By default, Redis creates 16 databases, indexed 0–15. You can see how to select between those databases in the next section.
You can alter the number of databases via the Redis configuration file. The example below demonstrates what the default configuration looks like:
- File: /etc/redis/redis.conf
1 2 3
# [...] databases 16 # [...]
Redis does not give you a way to name or otherwise define a database beyond the databases' indices.
Select a Database
You can choose which database you are currently viewing and operating on with the
SELECT command. For instance, to start using the database at index
1, you can use the command below:
For any database index except
0, the Redis CLI indicates the current index in the command prompt, as shown below:
Move Redis Databases and Data
The Redis CLI gives you two options for moving data between Redis databases.
You can move data wholesale from one database to another using the
SWAPDBcommand. Here is an example that moves the keys in database
0; conversely, database
0gets the keys from database
SWAPDB 0 1
You can migrate keys from a database on one Redis server to another using the
MIGRATEcommand. It takes the address of the destination server, its port number, the key name, and a number of milliseconds for a timeout.
Migration requires that you set up the remote server for remote access, as described in the Connect to a Remote Redis Server section above.
The example below migrates a key called
key_1from the current database to a remote database at
MIGRATE 192.0.2.0 6379 key_1 5000
The command also has a feature to allow you to migrate multiple keys at once. Use an empty string for the key field, then end the command with the
KEYSkeyword followed by a list of key names. For instance:
MIGRATE 192.0.2.0 6379 "" 5000 KEYS key_1 key_2 key_3
Remove a Redis Database
Because there is no database creation as such in Redis, it also lacks database deletion.
However, you can clear out the data in a given database using the
FLUSHDB command. This deletes all of the keys in the currently selected database.
CautionThe effects of this command are immediate and cannot be undone unless you have backed up your database.
Working with Keys in Redis
Data in Redis databases are stored as key-value pairs. Each key can be as simple as a key name and a string value or as complicated as a hash object which itself contains numerous key-value pairs.
You can learn more about the data types Redis supports in our upcoming guides in this series. Each data type gets covered in depth in these guides, so be sure to check them out.
The following sections show you how to start working with keys, no matter their types. You can see how to set new keys, to “query” for a particular key, and how to modify keys.
Setting and Getting Redis Keys
Create new entries — keys — in your database with the
SET command. It takes the name of the key and its value as shown below:
SET key_1 "Value 1"
The example above assigns a string
Value 1 as the key’s value. But, as mentioned above, Redis supports several different data types, which you can learn about in our upcoming guides in this series.
Redis does not have a query language like SQL or many other NoSQL databases. It, instead, provides a simple, and straightforward key storage focused on speed, and availability.
To view a key’s value in a Redis database, you use the
GET command followed by the key name:
Modify and Move Redis Keys
To rename a key, you can use a command like the example below. The example renames the
key_1 key to
RENAME key_1 key_one
There are two ways of deleting keys:
DELcommand deletes a key synchronously and immediately. It is the best option for most key deletions.
UNLINKcommand is useful when you want to delete potentially large keys. It determines how long the deletion would take, and runs the deletion asynchronously if the estimate crosses a certain threshold. If the duration does not cross that threshold, the command works synchronously like
DEL. This allows you to avoid tying up the database with heavy deletion tasks.
You can move a key as well. The command below moves the
key_3 key from the current database to database
MOVE key_3 7
How to Back Up Redis Databases
Redis databases operate in memory, which helps to make them fast and low-latency.
With Redis, persistence is handled via backups. When the server backs up a database depends on a combination of two factors:
- How much time has elapsed
- How many changes have been made
By default, the Redis server backs up databases for any of the following three conditions:
- An hour has passed and at least one change has occurred.
- Five minutes have passed and at least 100 changes have occurred.
- One minute has passed and at least 10,000 changes have occurred.
You can alter how Redis backs up databases via the configuration file’s
save directive. This directive takes a number of seconds and a number of changes. For example, following is the default configuration represented as a configuration:
- File: /etc/redis/redis.conf
1 2 3 4 5
# [...] save 3600 1 save 300 100 save 60 10000 # [...]
Manually Save a Redis Database
You also have the option to manually save the content of your Redis instance.
This command immediately backs up the entirety of your Redis server’s databases. However, this option is not often feasible in a production environment because it operates synchronously and, therefore, ties up the server.
Instead, you may want to use the following command for your production Redis instance.
It works like the
SAVE command, but operates asynchronously, meaning that it does not tie up the server while the backup operation runs.
NoteBecause it is asynchronous, additional changes can be made to the database while
BGSAVEonly saves changes up to the point when the command was run.
You can learn more about how Redis handles persistence in Redis’s documentation.
You now have a foundation for starting to use Redis. With this guide, you should be able to connect to a Redis instance, manage your Redis databases, and start working with keys.
Be sure to follow our upcoming guides on the series as well. These take you further into Redis usage and concepts, exploring topics like data types and server-assisted client-side caching.
You may wish to consult the following resources for additional information on this topic. While these are provided in the hope that they will be useful, please note that we cannot vouch for the accuracy or timeliness of externally hosted materials.
This page was originally published on