7.5 KiB
Upstash Redis Setup Guide
Why Upstash?
✅ No Installation: Works instantly on Windows, Mac, Linux
✅ 100% Free Tier: 10,000 commands/day (more than enough for dev)
✅ Production Ready: Same service for dev and production
✅ Global CDN: Fast from anywhere
✅ Zero Maintenance: No Redis server to manage
Step-by-Step Setup (3 minutes)
1. Create Upstash Account
- Go to: https://console.upstash.com/
- Sign up with GitHub, Google, or Email
- Verify your email (if required)
2. Create Redis Database
-
Click "Create Database"
-
Fill in details:
- Name:
redis-tat-dev(or any name you like) - Type: Select "Regional"
- Region: Choose closest to you (e.g., US East, EU West)
- TLS: Keep enabled (recommended)
- Eviction: Choose "No Eviction"
- Name:
-
Click "Create"
3. Copy Connection URL
After creation, you'll see your database dashboard:
-
Find "REST API" section
-
Look for "Redis URL" - it looks like:
rediss://default:AbCdEfGh1234567890XyZ@us1-mighty-shark-12345.upstash.io:6379 -
Click the copy button 📋
Configure Your Application
Edit .env File
Open Re_Backend/.env and add/update:
# Upstash Redis URL
REDIS_URL=rediss://default:YOUR_PASSWORD@YOUR_URL.upstash.io:6379
# Enable test mode for faster testing
TAT_TEST_MODE=true
Important:
- Note the double
sinrediss://(TLS enabled) - Copy the entire URL including the password
Verify Connection
Start Your Backend
cd Re_Backend
npm run dev
Check Logs
You should see:
✅ [TAT Queue] Connected to Redis
✅ [TAT Worker] Initialized and listening
⏰ TAT Configuration:
- Test Mode: ENABLED (1 hour = 1 minute)
- Redis: rediss://***@upstash.io:6379
Test Using Upstash Console
Method 1: Web CLI (Easiest)
- Go to your database in Upstash Console
- Click the "CLI" tab
- Type commands:
PING # → PONG KEYS * # → Shows all keys (should see TAT jobs after submitting request) INFO # → Shows Redis server info
Method 2: Redis CLI (Optional)
If you have redis-cli installed:
redis-cli -u "rediss://default:YOUR_PASSWORD@YOUR_URL.upstash.io:6379" ping
# → PONG
Monitor Your TAT Jobs
View Queued Jobs
In Upstash Console CLI:
# List all TAT jobs
KEYS bull:tatQueue:*
# See delayed jobs
LRANGE bull:tatQueue:delayed 0 -1
# Get specific job details
HGETALL bull:tatQueue:tat50-<REQUEST_ID>-<LEVEL_ID>
Example Output
After submitting a request, you should see:
KEYS bull:tatQueue:*
# Returns:
# 1) "bull:tatQueue:id"
# 2) "bull:tatQueue:delayed"
# 3) "bull:tatQueue:tat50-abc123-xyz789"
# 4) "bull:tatQueue:tat75-abc123-xyz789"
# 5) "bull:tatQueue:tatBreach-abc123-xyz789"
Upstash Features for Development
1. Data Browser
- View all keys and values
- Edit data directly
- Delete specific keys
2. CLI Tab
- Run Redis commands
- Test queries
- Debug issues
3. Metrics
- Monitor requests/sec
- Track data usage
- View connection count
4. Logs
- See all commands executed
- Debug connection issues
- Monitor performance
Free Tier Limits
Upstash Free Tier includes:
- ✅ 10,000 commands per day
- ✅ 256 MB storage
- ✅ TLS/SSL encryption
- ✅ Global edge caching
- ✅ REST API access
Perfect for:
- ✅ Development
- ✅ Testing
- ✅ Small production apps (up to ~100 users)
Production Considerations
Upgrade When Needed
For production with high traffic:
- Pro Plan: $0.2 per 100K commands
- Pay as you go: No monthly fee
- Auto-scaling: Handles any load
Security Best Practices
- Use TLS: Always use
rediss://(double s) - Rotate Passwords: Change regularly in production
- IP Restrictions: Add allowed IPs in Upstash console
- Environment Variables: Never commit REDIS_URL to Git
Production Setup
# .env.production
REDIS_URL=rediss://default:PROD_PASSWORD@prod-region.upstash.io:6379
TAT_TEST_MODE=false # Use real hours in production
WORK_START_HOUR=9
WORK_END_HOUR=18
Troubleshooting
Connection Refused Error
Problem: ECONNREFUSED or timeout
Solutions:
-
Check URL format:
# Should be: rediss://default:password@host.upstash.io:6379 # NOT: redis://... (missing second 's' for TLS) -
Verify database is active:
- Go to Upstash Console
- Check database status (should be green "Active")
-
Test connection:
- Use Upstash Console CLI tab
- Type
PING- should returnPONG
Slow Response Times
Problem: High latency
Solutions:
-
Choose closer region:
- Delete database
- Create new one in region closer to you
-
Use REST API (alternative):
UPSTASH_REDIS_REST_URL=https://YOUR_URL.upstash.io UPSTASH_REDIS_REST_TOKEN=YOUR_TOKEN
Command Limit Exceeded
Problem: "Daily request limit exceeded"
Solutions:
-
Check usage:
- Go to Upstash Console → Metrics
- See command count
-
Optimize:
- Remove unnecessary Redis calls
- Batch operations where possible
-
Upgrade (if needed):
- Pro plan: $0.2 per 100K commands
- No monthly fee
Comparison: Upstash vs Local Redis
| Feature | Upstash | Local Redis |
|---|---|---|
| Setup Time | 2 minutes | 10-30 minutes |
| Installation | None | Docker/Memurai |
| Maintenance | Zero | Manual updates |
| Cost (Dev) | Free | Free |
| Works Offline | No | Yes |
| Production | Same setup | Need migration |
| Monitoring | Built-in | Setup required |
| Backup | Automatic | Manual |
Verdict:
- ✅ Upstash for most cases (especially Windows dev)
- Local Redis only if you need offline development
Migration from Local Redis
If you were using local Redis:
1. Export Data (Optional)
# From local Redis
redis-cli --rdb dump.rdb
# Import to Upstash (use Upstash REST API or CLI)
2. Update Configuration
# Old (.env)
REDIS_URL=redis://localhost:6379
# New (.env)
REDIS_URL=rediss://default:PASSWORD@host.upstash.io:6379
3. Restart Application
npm run dev
That's it! No code changes needed - BullMQ works identically.
FAQs
Q: Is Upstash free forever?
A: Yes, 10,000 commands/day free tier is permanent.
Q: Can I use it in production?
A: Absolutely! Many companies use Upstash in production.
Q: What if I exceed free tier?
A: You get notified. Either optimize or upgrade to pay-as-you-go.
Q: Is my data secure?
A: Yes, TLS encryption by default, SOC 2 compliant.
Q: Can I have multiple databases?
A: Yes, unlimited databases on free tier.
Q: What about data persistence?
A: Full Redis persistence (RDB + AOF) with automatic backups.
Resources
- Upstash Docs: https://docs.upstash.com/redis
- Redis Commands: https://redis.io/commands
- BullMQ Docs: https://docs.bullmq.io/
- Our TAT System: See
TAT_NOTIFICATION_SYSTEM.md
Next Steps
✅ Upstash setup complete? Now:
- Enable Test Mode: Set
TAT_TEST_MODE=truein.env - Create Test Request: Submit a 6-hour TAT request
- Watch Logs: See notifications at 3min, 4.5min, 6min
- Check Upstash CLI: Monitor jobs in real-time
Setup Complete! 🎉
Your TAT notification system is now powered by Upstash Redis!
Last Updated: November 4, 2025
Contact: Royal Enfield Workflow Team