Redis is used as the message broker for Celery task queues and for caching frequently accessed data.
| Feature |
Purpose |
| Celery Broker |
Task queue message transport |
| Celery Backend |
Task result storage |
| Session Cache |
User session data (future) |
| Metadata Cache |
Company/project metadata |
| Environment |
Version |
| Production |
5.0 (Alpine) |
| Test |
5.0 (Alpine) |
| Local |
System Redis |
| Server |
Container |
Port |
| rapidpm-prod |
rapid-pm_redis_1 |
6379 (internal) |
| rapidpm-test |
rapid-pm-redis-1 |
6379 (internal) |
| Local |
System service |
6379 |
REDIS_HOST=redis # Docker service name
REDIS_PORT=6379
REDIS_DB=0
REDIS_URL=redis://redis:6379/0
redis:
image: redis:5.0-alpine
restart: always
volumes:
- redis_data:/data
# celery_app.py
celery_app = Celery(
'rapidpm',
broker=os.environ.get('REDIS_URL'),
backend=os.environ.get('REDIS_URL')
)
| Data Type |
Cache? |
Reason |
| Company metadata |
Yes |
Rarely changes |
| Project metadata |
Yes |
Rarely changes |
| Tasks |
No |
Frequently updated |
| Billing data |
No |
Must be real-time |
Type: BSD-3-Clause (Open Source)
Cost: Free
See Licenses for details.
# Check Redis status
docker exec rapid-pm_redis_1 redis-cli ping
# Check memory usage
docker exec rapid-pm_redis_1 redis-cli info memory
# List all keys
docker exec rapid-pm_redis_1 redis-cli keys '*'
| Issue |
Solution |
| Connection refused |
Check container is running |
| Port conflict (local) |
Stop system Redis or use different port |
| Memory full |
Check maxmemory setting |