Traefik not reloading configuration when redis was updated

redis: 5.0
traefik: 2.2.0

config.toml:

################################################################
#
# Configuration for Traefik v2.
#
################################################################

################################################################
# Global configuration
################################################################
[global]
  checkNewVersion = false
  sendAnonymousUsage = false

################################################################
# Entrypoints configuration
################################################################

# Entrypoints definition
#
# Optional
# Default:
[entryPoints]
  [entryPoints.web]
    address = ":6001"

  [entryPoints.websecure]
    address = ":6002"

################################################################
# Traefik logs configuration
################################################################

# Traefik logs
# Enabled by default and log to stdout
#
# Optional
#
[log]

  # Log level
  #
  # Optional
  # Default: "ERROR"
  #
  level = "DEBUG"

  # Sets the filepath for the traefik log. If not specified, stdout will be used.
  # Intermediate directories are created if necessary.
  #
  # Optional
  # Default: os.Stdout
  #
  # filePath = "log/traefik.log"

  # Format is either "json" or "common".
  #
  # Optional
  # Default: "common"
  #
  format = "json"

################################################################
# Access logs configuration
################################################################

# Enable access logs
# By default it will write to stdout and produce logs in the textual
# Common Log Format (CLF), extended with additional fields.
#
# Optional
#
[accessLog]

  # Sets the file path for the access log. If not specified, stdout will be used.
  # Intermediate directories are created if necessary.
  #
  # Optional
  # Default: os.Stdout
  #
  # filePath = "/path/to/log/log.txt"

  # Format is either "json" or "common".
  #
  # Optional
  # Default: "common"
  #
  format = "json"

################################################################
# API and dashboard configuration
################################################################

# Enable API and dashboard
[api]
  insecure = false
  dashboard = true

# Enable ping
[ping]

[providers]
  providersThrottleDuration = 10
  [providers.redis]
    rootKey = "traefik"
    endpoints = [""]
    username = ""
    password = ""

  [providers.file]
    directory = "./traefik/config"
    watch = true

Hi,
I just got started with setting up Traefik and ran into the same problem. Basically we are using a hosted AWS version of Redis to provide the dynamic configuration for Traefik. On Traefik startup all services/routes configured in Redis were correctly processed, but they Traefik was not responding to updates in Redis (eg. removing / adding routes).

What solved it for me was to enable 'keyspace events' on our AWS Redis instance (can be configured in the parameter groups). More details here: Redis keyspace notifications | Redis

Hope this helps,
Maurits