177 lines
3.6 KiB
Markdown
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!
|
|
|