:py:mod:`airflow.providers.redis.hooks.redis`
=============================================

.. py:module:: airflow.providers.redis.hooks.redis

.. autoapi-nested-parse::

   RedisHook module



Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.redis.hooks.redis.RedisHook




.. py:class:: RedisHook(redis_conn_id = default_conn_name)

   Bases: :py:obj:`airflow.hooks.base.BaseHook`

   Wrapper for connection to interact with Redis in-memory data structure store

   You can set your db in the extra field of your connection as ``{"db": 3}``.
   Also you can set ssl parameters as:
   ``{"ssl": true, "ssl_cert_reqs": "require", "ssl_cert_file": "/path/to/cert.pem", etc}``.

   .. py:attribute:: conn_name_attr
      :annotation: = redis_conn_id

      

   .. py:attribute:: default_conn_name
      :annotation: = redis_default

      

   .. py:attribute:: conn_type
      :annotation: = redis

      

   .. py:attribute:: hook_name
      :annotation: = Redis

      

   .. py:method:: get_conn(self)

      Returns a Redis connection.



