fetch_ml/docs/_pages/redis-ha.md
Jeremie Fraeys 385d2cf386 docs: add comprehensive documentation with MkDocs site
- Add complete API documentation and architecture guides
- Include quick start, installation, and deployment guides
- Add troubleshooting and security documentation
- Include CLI reference and configuration schema docs
- Add production monitoring and operations guides
- Implement MkDocs configuration with search functionality
- Include comprehensive user and developer documentation

Provides complete documentation for users and developers
covering all aspects of the FetchML platform.
2025-12-04 16:54:57 -05:00

1.9 KiB

layout title permalink nav_order
page Redis High Availability (Optional) /redis-ha/ 7

Redis High Availability

Note: This is optional for homelab setups. Single Redis instance is sufficient for most use cases.

When You Need HA

Consider Redis HA if:

  • Running production workloads
  • Uptime > 99.9% required
  • Can't afford to lose queued tasks
  • Multiple workers across machines

Setup

# docker-compose.yml
version: '3.8'
services:
  redis-master:
    image: redis:7-alpine
    command: redis-server --maxmemory 2gb
    
  redis-replica:
    image: redis:7-alpine
    command: redis-server --slaveof redis-master 6379
    
  redis-sentinel-1:
    image: redis:7-alpine
    command: redis-sentinel /etc/redis/sentinel.conf
    volumes:
      - ./sentinel.conf:/etc/redis/sentinel.conf

sentinel.conf:

sentinel monitor mymaster redis-master 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 10000

Application Configuration

# worker-config.yaml
redis_addr: "redis-sentinel-1:26379,redis-sentinel-2:26379"
redis_master_name: "mymaster"

Redis Cluster (Advanced)

For larger deployments with sharding needs.

# Minimum 3 masters + 3 replicas
services:
  redis-1:
    image: redis:7-alpine
    command: redis-server --cluster-enabled yes
    
  redis-2:
    # ... similar config

Homelab Alternative: Persistence Only

For most homelabs, just enable persistence:

# docker-compose.yml
services:
  redis:
    image: redis:7-alpine
    command: redis-server --appendonly yes
    volumes:
      - redis_data:/data
      
volumes:
  redis_data:

This ensures tasks survive Redis restarts without full HA complexity.


Recommendation: Start simple. Add HA only if you experience actual downtime issues.