Version 3.12.0

3.3.6. Redis backups

A Redis backup is a database dump. Backups are created in RDB format.

Requirements:

  • To make backups of your databases, you have to ensure that you have installed the redis-cli utility that is compatible with the version of your database server.
  • There should be enough space in the directory where the temporary backup is created.
  • The same amount of RAM should be available for Redis usage.

Here is an example of configs for creating RDB backup of the Redis server.

This job config defines rules to make database backups of the Redis server running on localhost:

job_name: redis
type: redis
tmp_dir: /var/backup/dump_tmp
safety_backup: false
deferred_copying: false
sources:
  - name: redis
  	connect:
    	db_host: localhost
    	db_port: "6379"
    	db_password: redisP@5s
  	gzip: true
storages_options:
  - storage_name: local
  	backup_path: /var/backup/dump
  	retention:
    	days: 7
    	weeks: 5
    	months: 5

If you need to configure additional storage or have questions about options, please visit the Job storage options page for more details.

Reference for redis.conf:

# Job unique name
job_name: string # Required

# Type of the backup job. `redis`
type: string # Required

# Path to the directory used to temporarily store the backup during the creation process
tmp_dir: string # Required

# The option defines the order of rotation (deletion of old) backups, before creating a new copy or afterwards
safety_backup: bool # Default: false

# The option allows you to postpone copying until all backup parts of the job are complete before its delivery
deferred_copying: bool # Default: false

# The option enables compression of the backup archive
gzip: bool # Default: false
 
# Contains resource constraints for a specific job that override all others.
limits: map
  # Limit the write speed to the local disc per second in `bytes`, `kb`, `mb`, etc. Example: "20mb".
  # If "0" is used, there is no limitation.
  disk_rate: string
  # Limit the net speed to remote storages per second in `bytes`, `kb`, `mb`, etc. Example: "12mb".
  # If "0" is used, there is no limitation.
  net_rate: string

# Contains a list of individual subtasks for creating backups
sources: list 
    # Unique subtask name, used to separate storage paths
  - name: string # Required
    # Defines a set of parameters for connecting to the database. You may use either auth_file or db_host,db_port or socket options. Options priority follows: db_host → socket
    connect: map 
      # DB host address
      db_host: string # Optional
      # DB port
      db_port: string # Optional
      # DB user
      db_password: string # Optional
      # Path to DB socket
      socket: string # Optional
    # The option enables compression of the backup archive, overwrites job level
    gzip: bool # Default: false
    # The option stops replication while collecting backups
    is_slave: bool # Default: false
    # Special parameters for collecting database backups. Will be passed as arguments to the `mysqldump` command
    db_extra_keys: string # Optional

# List of storages to which backups should be delivered and their rotation rules
storages_options: list 
    # The name of the storage added to the main config. The name `local` is used to store a copy on host.
  - storage_name: string # Reuired
    # Path to directory where backups will be stored
    backup_path: string # Reuired
    # Enables backup rotation according to retention parameters.
    enable_rotate: bool # Default: true
    # Set of rules to store and rotate the backups.
    retention: map 
      # Use backup retention count instead of retention period.
      count_instead_of_period: bool # Default: false
      # Count of days/daily copies to store backups. Multiple copies can be created in one day.
      days: numeric # Default: 7
      # Count of weeks/weekly copies to store backups created on sunday.
      weeks: numeric # Default: 5
      # Count of months/montly copies to store backups created on the first day of month.
      months: numeric # Default: 12