didi-lot2-backend/backend/services/data-layer/didiCache
2026-07-10 03:39:53 -07:00
..
.env.example livrare lot 2 2026-07-10 03:39:53 -07:00
.gitignore livrare lot 2 2026-07-10 03:39:53 -07:00
INDEX.md livrare lot 2 2026-07-10 03:39:53 -07:00
MIGRATION.md livrare lot 2 2026-07-10 03:39:53 -07:00
README.md livrare lot 2 2026-07-10 03:39:53 -07:00
redis.conf livrare lot 2 2026-07-10 03:39:53 -07:00

DIDI Cache Service 🚀

Super Simple Start Guide

Step 1: Set Your Password

# Copy the example file
cp .env.example .env

# Edit .env and change this line:
REDIS_PASSWORD=YOUR_SECURE_PASSWORD_HERE

Step 2: Start Redis

docker compose up -d

That's it! Your cache is running! 🎉

Check If It's Working

# See if container is healthy
docker ps

# Look for: didi-cache (healthy)

Connection Info 📡

  • Host: localhost
  • Port: 6380 (not 6379 to avoid conflicts!)
  • Password: (what you set in .env)

Test the Connection 🔌

# Connect with Redis CLI
docker exec -it didi-cache redis-cli -a YOUR_PASSWORD

# Test it
127.0.0.1:6379> PING
PONG

# Exit
127.0.0.1:6379> EXIT

What's Inside? 📦

This Redis cache is configured for:

  • 512MB memory (perfect for status & results)
  • Auto-expiry support (services set TTL)
  • Persistence enabled (survives restarts)
  • Password protected

How DIDI Uses Redis 🔄

Pipeline runs → Status stored here (24hr TTL)
              → Results cached here
              → UI polls for updates
              → After 24hrs, auto-deleted

Key Patterns We Store 📝

  • run:{run_id} - Pipeline execution status
  • node_status:{run_id} - Each node's progress
  • results:{run_id} - Analysis results

Common Commands 🛠️

# Stop cache
docker compose down

# View logs
docker compose logs -f

# Connect to Redis CLI
docker exec -it didi-cache redis-cli -a YOUR_PASSWORD

# Restart fresh (WARNING: Deletes all cache!)
docker compose down -v
docker compose up -d

Monitor Cache Usage 📊

# Check memory usage
docker exec -it didi-cache redis-cli -a YOUR_PASSWORD INFO memory

# See all keys
docker exec -it didi-cache redis-cli -a YOUR_PASSWORD KEYS "*"

# Count keys
docker exec -it didi-cache redis-cli -a YOUR_PASSWORD DBSIZE

Troubleshooting 🔧

Port 6380 already in use?

Edit .env and change REDIS_PORT to something else (like 6381)

Can't connect?

  1. Check container is healthy: docker ps
  2. Verify password in .env
  3. Make sure you're using port 6380, not 6379

Memory full?

Redis will auto-delete least recently used keys (LRU policy)

Part of Something Bigger 🏗️

This cache is part of the DIDI Backend data layer:

📁 data-layer/
  ├── 📁 didiDatabase/  (PostgreSQL - Done!)
  ├── 📁 didiCache/     (Redis - You are here!)
  ├── 📁 didiQueue/     (RabbitMQ - Next)
  └── 📁 didiStorage/   (MinIO - Coming soon)

Quick Health Check 🏥

# Is it running?
docker exec -it didi-cache redis-cli -a YOUR_PASSWORD PING

# Response should be:
# PONG

Why Port 6380? 🤔

The old monolithic setup uses port 6379. We use 6380 to:

  • Avoid conflicts during migration
  • Run both services side-by-side
  • Easy rollback if needed

That's all you need to know! Happy caching!

Version: 1.0.0 | Redis 7-alpine