This document describes the current stable version of Celery (5.6). For development docs, go here.

# `celery.backends.redis`

Redis result store backend.

class celery.backends.redis.RedisBackend(host=None, port=None, db=None, password=None, max_connections=None, url=None, connection_pool=None, **kwargs)

  Redis task result store.

  It makes use of the following commands: GET, MGET, DEL, INCRBY, EXPIRE, SET, SETEX

  property ConnectionPool
  class ResultConsumer(*args, **kwargs)
    cancel_for(task_id)
    consume_from(task_id)
    drain_events(timeout=None)
    on_after_fork()
    on_state_change(meta, message)
    on_wait_for_pending(result, **kwargs)
    start(initial_task_id, **kwargs)
    stop()
  add_to_chord(group_id, result)
  apply_chord(header_result_args, body, **kwargs)
  property client
  connection_class_ssl

    alias of `SSLConnection`

  delete(key)
  ensure(fun, args, **policy)
  exception_safe_to_retry(exc)

    Check if an exception is safe to retry.

    Backends have to overload this method with correct predicates dealing with their exceptions.

    By default no exception is safe to retry, it’s up to backend implementation to define which exceptions are safe.

  expire(key, value)
  forget(task_id)
  get(key)
  incr(key)
  max_connections = None

    Maximum number of connections in the pool.

  mget(keys)
  on_chord_part_return(request, state, result, propagate=None, **kwargs)
  on_connection_error(max_retries, exc, intervals, retries)
  on_task_call(producer, task_id)
  redis = <module 'redis' from '/usr/lib/python3/dist-packages/redis/__init__.py'>

    https://pypi.org/project/redis/ client module.

  property retry_policy

    dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object’s

    > (key, value) pairs

    dict(iterable) -> new dictionary initialized as if via:

      d = {} for k, v in iterable:

      > d[k] = v

    dict(**kwargs) -> new dictionary initialized with the name=value pairs

      in the keyword argument list. For example: dict(one=1, two=2)

  set(key, value, **retry_policy)
  set_chord_size(group_id, chord_size)
  supports_autoexpire = True

    If true the backend must automatically expire results. The daily backend_cleanup periodic task won’t be triggered in this case.

  supports_native_join = True

    If true the backend must implement `get_many()`.

class celery.backends.redis.SentinelBackend(*args, **kwargs)

  Redis sentinel task result store.

  as_uri(include_password=False)

    Return the server addresses as URIs, sanitizing the password or not.

  connection_class_ssl

    alias of `SentinelManagedSSLConnection`

  sentinel = <module 'redis.sentinel' from '/usr/lib/python3/dist-packages/redis/sentinel.py'>