Overview
Redis is the default broker for Broccoli. It provides fast, in-memory message storage with persistence options.Installation
Redis support is enabled by default:Connection
Connection URL formats
Starting Redis
Docker
With persistence
With password
Features
Connection pooling
Redis usesbb8-redis for connection pooling:
Fairness queues
Redis supports fairness queues through disambiguators, ensuring fair processing across different message categories:Message scheduling
Redis supports delayed message delivery:Redis data structures
Broccoli uses the following Redis keys:| Key pattern | Type | Purpose |
|---|---|---|
{queue} | List | Main queue |
{queue}:processing | Sorted Set | Messages being processed |
{queue}:failed | List | Failed messages |
{queue}:scheduled | Sorted Set | Scheduled messages |
{queue}:fairness:{disambiguator} | List | Fairness sub-queues |
Management API
With themanagement feature enabled:
Best practices
Use appropriate pool size
Use appropriate pool size
Set pool connections based on your workload:
- Low traffic: 5-10 connections
- Medium traffic: 10-20 connections
- High traffic: 20-50 connections
Enable persistence for production
Enable persistence for production
Use Redis persistence (RDB or AOF) in production to prevent message loss:
Monitor memory usage
Monitor memory usage
Monitor Redis memory, especially with large message payloads:
Use Redis Cluster for scale
Use Redis Cluster for scale
For high-volume applications, consider Redis Cluster for horizontal scaling.