1+ # Redis 분산 시스템 모니터링 스크립트
2+
3+ Write-Host " 📊 Redis 분산 시스템 모니터링" - ForegroundColor Green
4+
5+ function Show-RedisStatus {
6+ Write-Host " `n " + " =" * 50
7+ Write-Host " 📊 Redis 상태 ($ ( Get-Date - Format ' HH:mm:ss' ) )" - ForegroundColor Green
8+ Write-Host " =" * 50
9+
10+ # 활성 서버 목록
11+ Write-Host " `n 🖥️ 활성 서버 목록:"
12+ $activeServers = redis- cli - p 6380 SMEMBERS servers:active
13+ if ($activeServers ) {
14+ foreach ($server in $activeServers ) {
15+ if ($server ) {
16+ Write-Host " ✅ $server " - ForegroundColor Green
17+
18+ # 서버 정보 조회
19+ $serverInfo = redis- cli - p 6380 GET " servers:active:$server "
20+ if ($serverInfo ) {
21+ $serverData = $serverInfo | ConvertFrom-Json - ErrorAction SilentlyContinue
22+ if ($serverData ) {
23+ Write-Host " 시작: $ ( $serverData.StartedAt ) "
24+ Write-Host " 마지막 헬스체크: $ ( $serverData.LastHeartbeat ) "
25+ Write-Host " 활성 연결: $ ( $serverData.ActiveConnections ) "
26+ }
27+ }
28+ }
29+ }
30+ } else {
31+ Write-Host " ❌ 활성 서버 없음" - ForegroundColor Red
32+ }
33+
34+ # 사용자 세션 목록
35+ Write-Host " `n 👥 사용자 세션:"
36+ $userSessions = redis- cli - p 6380 KEYS " user:server:*"
37+ if ($userSessions ) {
38+ foreach ($session in $userSessions ) {
39+ if ($session ) {
40+ $userId = $session -replace " user:server:" , " "
41+ $serverId = redis- cli - p 6380 GET $session
42+ Write-Host " 👤 사용자 $userId -> 서버 $serverId " - ForegroundColor Yellow
43+ }
44+ }
45+ } else {
46+ Write-Host " ℹ️ 활성 사용자 세션 없음" - ForegroundColor Gray
47+ }
48+
49+ # Redis 메시지 채널
50+ Write-Host " `n 📡 활성 채널:"
51+ $channels = redis- cli - p 6380 PUBSUB CHANNELS " *"
52+ if ($channels ) {
53+ foreach ($channel in $channels ) {
54+ if ($channel ) {
55+ $subscribers = redis- cli - p 6380 PUBSUB NUMSUB $channel
56+ Write-Host " 📻 $channel (구독자: $ ( $subscribers [1 ]) )" - ForegroundColor Cyan
57+ }
58+ }
59+ } else {
60+ Write-Host " ℹ️ 활성 채널 없음" - ForegroundColor Gray
61+ }
62+
63+ # Redis 메모리 사용량
64+ Write-Host " `n 💾 Redis 메모리:"
65+ $memoryInfo = redis- cli - p 6380 INFO memory
66+ $usedMemory = ($memoryInfo | Select-String " used_memory_human:" ).ToString().Split(" :" )[1 ]
67+ Write-Host " 사용 중: $usedMemory " - ForegroundColor Magenta
68+ }
69+
70+ function Show-LiveMessages {
71+ Write-Host " `n 📡 실시간 메시지 모니터링 시작..." - ForegroundColor Yellow
72+ Write-Host " Ctrl+C로 중지"
73+ redis- cli - p 6380 MONITOR
74+ }
75+
76+ Write-Host " 🎛️ Redis 모니터링 도구"
77+ Write-Host " 1. 상태 모니터링 (5초마다 갱신)"
78+ Write-Host " 2. 실시간 메시지 모니터링"
79+ Write-Host " 3. 한 번만 상태 확인"
80+
81+ $choice = Read-Host " `n 선택하세요 (1-3)"
82+
83+ switch ($choice ) {
84+ " 1" {
85+ Write-Host " `n 🔄 상태 모니터링 시작 (Ctrl+C로 중지)..."
86+ while ($true ) {
87+ Clear-Host
88+ Show-RedisStatus
89+ Start-Sleep - Seconds 5
90+ }
91+ }
92+ " 2" {
93+ Show-LiveMessages
94+ }
95+ " 3" {
96+ Show-RedisStatus
97+ Write-Host " `n ✅ 상태 확인 완료"
98+ }
99+ default {
100+ Show-RedisStatus
101+ }
102+ }
0 commit comments