# Working with Redis queues

`QueueHandler` and `QueueListener` classes are provided to facilitate interfacing with Redis.

class logutils.redis.RedisQueueHandler(key='python.logging', redis=None, limit=0)

  A QueueHandler implementation which pushes pickled records to a Redis queue using a specified key.

  Parameters:

    - key – The key to use for the queue. Defaults to “python.logging”.

    - redis – If specified, this instance is used to communicate with a Redis instance.

    - limit – If specified, the queue is restricted to have only this many elements.

  enqueue(record)

    Enqueue a record.

    The base implementation uses `put_nowait()`. You may want to override this method if you want to use blocking, timeouts or custom queue implementations.

    Parameters:

      record – The record to enqueue.

class logutils.redis.RedisQueueListener(*handlers, **kwargs)

  A QueueListener implementation which fetches pickled records from a Redis queue using a specified key.

  Parameters:

    - key – The key to use for the queue. Defaults to “python.logging”.

    - redis – If specified, this instance is used to communicate with a Redis instance.

  dequeue(block)

    Dequeue and return a record.

  enqueue_sentinel()

    Writes a sentinel to the queue to tell the listener to quit. This implementation uses `put_nowait()`. You may want to override this method if you want to use timeouts or work with custom queue implementations.