Re_Backend/monitoring/REDIS_MIGRATION.md

177 lines
3.6 KiB
Markdown

# 🔄 Redis Migration Guide
## Overview
Redis is now part of the monitoring stack and running locally in Docker.
---
## ✅ What Was Done
1. **Added Redis to monitoring stack**
- Image: `redis:7-alpine`
- Container name: `re_redis`
- Port: `6379` (mapped to host)
- Password: Uses `REDIS_PASSWORD` from environment (default: `Redis@123`)
- Data persistence: Volume `re_redis_data`
2. **Updated Redis Exporter**
- Now connects to local Redis container
- Automatically starts after Redis is healthy
---
## 🔧 Update Backend Configuration
### Step 1: Update `.env` file
Open `Re_Backend/.env` and change:
```bash
# OLD (External Redis)
REDIS_HOST=160.187.166.17
# NEW (Local Docker Redis)
REDIS_HOST=localhost
```
Or if you want to use Docker network (recommended for production):
```bash
REDIS_HOST=re_redis # Use container name if backend is also in Docker
```
### Step 2: Restart Backend
```powershell
# Stop backend (Ctrl+C in terminal)
# Then restart
npm run dev
```
---
## 📊 Verify Everything Works
### 1. Check Redis is Running
```powershell
docker ps --filter "name=redis"
```
Should show:
```
re_redis Up (healthy)
re_redis_exporter Up
```
### 2. Test Redis Connection
```powershell
# Test from host
redis-cli -h localhost -p 6379 -a Redis@123 ping
# Should return: PONG
```
### 3. Check Backend Logs
```
[info]: [Redis] ✅ Connected successfully
[info]: [TAT Queue] ✅ Queue initialized
[info]: [Pause Resume Queue] ✅ Queue initialized
```
### 4. Refresh Grafana Dashboard
- Go to: http://localhost:3001/d/re-workflow-overview
- **Redis Status** should show "Up" (green)
- **Redis Connections** should show a number
- **Redis Memory** should show bytes used
- **Queue metrics** should work as before
---
## 🎯 Benefits of Local Redis
**Simpler Setup** - Everything in one place
**Faster Performance** - Local network, no external latency
**Data Persistence** - Redis data saved in Docker volume
**Easy Monitoring** - Redis Exporter automatically connected
**Environment Isolation** - No conflicts with external Redis
---
## 🔄 Docker Commands
### Start all monitoring services (including Redis)
```powershell
cd Re_Backend/monitoring
docker-compose -f docker-compose.monitoring.yml up -d
```
### Stop all services
```powershell
docker-compose -f docker-compose.monitoring.yml down
```
### View Redis logs
```powershell
docker logs re_redis
```
### Redis CLI access
```powershell
docker exec -it re_redis redis-cli -a Redis@123
```
### Check Redis data
```powershell
# Inside redis-cli
INFO
DBSIZE
KEYS *
```
---
## 🗄️ Data Persistence
Redis data is persisted in Docker volume:
```
Volume: re_redis_data
Location: Docker managed volume
```
To backup Redis data:
```powershell
docker exec re_redis redis-cli -a Redis@123 SAVE
docker cp re_redis:/data/dump.rdb ./redis-backup.rdb
```
---
## ⚠️ If You Want to Keep External Redis
If you prefer to keep using the external Redis server, simply:
1. Update `docker-compose.monitoring.yml`:
```yaml
redis-exporter:
environment:
- REDIS_ADDR=redis://160.187.166.17:6379
command:
- '--redis.addr=160.187.166.17:6379'
- '--redis.password=Redis@123'
```
2. Don't change `.env` in backend
3. Remove the `redis` service from docker-compose if you don't need it locally
---
## 🎉 Summary
Your setup now includes:
- ✅ Redis running locally in Docker
- ✅ Redis Exporter connected and working
- ✅ Backend ready to connect (just update `REDIS_HOST=localhost` in `.env`)
- ✅ All monitoring metrics available in Grafana
**Next step**: Update `Re_Backend/.env` with `REDIS_HOST=localhost` and restart your backend!