Specific options when creating or updating a Redis® service

You can find all the specific options for Redis® by using the CLI help as such:

exo dbaas create --help-redis
  --redis-fork-from              name of a Database Service to fork from
  --redis-ip-filter              allow incoming connections from CIDR address block
  --redis-recovery-backup-name   the name of the backup to restore when forking from a Database Service
  --redis-settings               Redis configuration settings (JSON format)

Restricting connections from the Internet

By default, Exoscale DBaaS are not accessible from the whole Internet. Data does not transmit in clear over the network as it is SSL encrypted by default and authenticated.

To allow incoming connections to your database service, you can add a filter allowing:

  • just one IP address
  • a network range
  • a combination of the above

To do this update your service or create it with the ip filter which is a comma separated list of CIDRs exo dbaas update -z de-muc-1 test-redis --redis-ip-filter=,

Managing JSON configuration settings

You can list all settings available for the database service by using the command:

exo dbaas type show redis --settings redis

│                KEY                │     TYPE      │                    DESCRIPTION                     │
│ acl_channels_default              │ string        │ Determines default pub/sub channels' ACL for new   │
│                                   │               │ users if ACL is not supplied. When this option is  │
│                                   │               │ not defined, all_channels is assumed to keep       │
│                                   │               │ backward compatibility. This option doesn't affect │
│                                   │               │ Redis configuration acl-pubsub-default.            │
│                                   │               │   * Supported values:                              │
│                                   │               │     - allchannels                                  │
│                                   │               │     - resetchannels                                │
│ ssl                               │ boolean       │                                                    │
│ lfu_log_factor                    │ integer       │                                                    │
│ lfu_decay_time                    │ integer       │                                                    │
│ pubsub_client_output_buffer_limit │ integer       │ Set output buffer limit for pub / sub clients in   │
│                                   │               │ MB. The value is the hard limit, the soft limit is │
│                                   │               │ 1/4 of the hard limit. When setting the limit, be  │
│                                   │               │ mindful of the available memory in the selected    │
│                                   │               │ service plan.                                      │
│                                   │               │   * Minimum: 32 / Maximum: 512                     │
│                                   │               │   * Example: 64                                    │
│ timeout                           │ integer       │                                                    │
│ maxmemory_policy                  │ [string null] │                                                    │
│ io_threads                        │ integer       │                                                    │
│ notify_keyspace_events            │ string        │                                                    │
│ persistence                       │ string        │ When persistence is 'rdb', Redis does RDB dumps    │
│                                   │               │ each 10 minutes if any key is changed. Also RDB    │
│                                   │               │ dumps are done according to backup schedule for    │
│                                   │               │ backup purposes. When persistence is 'off', no RDB │
│                                   │               │ dumps and backups are done, so data can be lost at │
│                                   │               │ any moment if service is restarted for any reason, │
│                                   │               │ or if service is powered off. Also service can't   │
│                                   │               │ be forked.                                         │
│                                   │               │   * Supported values:                              │
│                                   │               │     - off                                          │
│                                   │               │     - rdb                                          │

You can also update the settings of your database service with the following command:

exo dbaas update --zone de-fra-1 target-redis-service-name --redis-settings '{"notify_keyspace_events":"KEA"}'


The parameter of --redis-settings has to be in JSON format.

Refer to the equivalent section for Managed PostgreSQL

Connect with redis-cli

To connect to the Redis database, you will need the redis-cli client installed. You can install this as part of the Redis server installation or as standalone client.

Execute the following command from a terminal window:

redis-cli -u REDIS_URI

To check the connection is working, execute the following command returning all Redis parameters:


You can also list the keys using the command:


Migrating to Exoscale for Redis®


Due to the fact that migrations always involve interaction with third party services running outside of Exoscale, only best effort support is provided on all migrations.

Migrate your Redis server database to our Exoscale for Redis® service. Two methods are supported: Replication and Scan.

The migration first attempts to use the replication method, and if it fails, it uses scan.

The replication method is preferred for production databases because it allows migrating data with minimal downtime. The scan method is slower and will iterate over all keys, one database at a time.


  • A target Redis service: this can be a new or an existing service.
  • The hostname, port and password of the source Redis service.
  • The source Redis service must be secured with SSL/TLS which is the default for migration. Refer to Redis TLS support
  • Publicly accessible source Redis service (for that, you might need to set bind parameter to a publicly reachable network interface in your redis configuration file). Any firewalls need to be open on port TCP 6379 if using the default to allow traffic from the source to the target servers. Also pay attention to other protections, that can restrict connections: SELinux should be disabled or set in permissive mode for the duration of the migration on the source server.
  • Match the number of Redis databases from source to target. Use the command redis-cli config get databases. By default Redis has 16 databases, if migrating more adjust accordingly on the target with the command in the section below and create the target service first before migration.

Performing data migration

To perform the migration, you can either use the portal or the Exoscale CLI, depends on when the action it’s performed and if the service receiving the migration already exists or not.

Run the following command to create a new service and start the migration immediately:

exo dbaas create redis business-1 target-redis-service-name --redis-ip-filter --redis-migration-host x.x.x.x --redis-migration-port 6379 --redis-migration-password xxxxx --redis-migration-method replication --redis-migration-ssl true
  • target-redis-service-name : Target DBaaS Service Name
  • –redis-migration-host : the IP address of your source Redis server
  • –redis-migration-port : the port on which your source Redis server is reachable
  • –redis-migration-password : your source Redis server password
  • –redis-migration-method : the chosen method for migration, which could be replication or scan method.

In case the Redis service is already created, you can run the command below:

exo dbaas update --redis-migration-host x.x.x.x --redis-migration-port 6379 --redis-migration-password xxxxx --redis-migration-method dump target-redis-service-name


Ensure you are using at least version 1.53.0 of the Exoscale CLI

In case you need to increase the target Redis service number_of_databases, use this command:

exo dbaas update target-redis-service-name --redis-settings '{"number_of_databases": 20}'

Then check redis settings:

exo dbaas show target-redis-service-name --settings redis