Bai nay di sau vao Monitoring Redis - cach giam sat, phat hien va xu ly van de. Day la bai 2 trong series Redis Production.
2. Monitoring — Giám sát Redis
"Bạn không thể quản lý những gì bạn không đo lường." Monitoring là xương sống của mọi hệ thống production, và Redis không phảingoại lệ.

Dashboard monitoring giúp phát hiện sớm các vấn đề về hiệu năng và tài nguyên trong hệ thống production
2.1. Lệnh INFO — Tổng quan hệ thống
Lệnh INFO cung cấp cái nhìn tổng quan nhất về trạng thái Redis:
# Xem tất cả thông tin
redis-cli INFO
# Xem theo từng section
redis-cli INFO server # Phiên bản, uptime
redis-cli INFO clients # Kết nối client
redis-cli INFO memory # Sử dụng bộ nhớ
redis-cli INFO stats # Thống kê lệnh
redis-cli INFO replication # Trạng thái replication
redis-cli INFO persistence # Trạng thái RDB/AOF
redis-cli INFO cpu # Sử dụng CPU
redis-cli INFO commandstats # Thống kê từng loại lệnh
Những chỉ số quan trọng cần theo dõi:
# 1. Connected clients — số client đang kết nối
redis-cli INFO clients | grep connected_clients
# Nếugần maxclients, có thể có connection leak
# 2. Hit rate — tỷ lệ cache hit
redis-cli INFO stats | grep -E "keyspace_hits|keyspace_misses"
# Hit rate = hits / (hits + misses) * 100%
# Lý tưởng: > 90%
# 3. Evicted keys — số key bị loại bỏ do hết bộ nhớ
redis-cli INFO stats | grep evicted_keys
# Nếu > 0 và tăng liên tục: cần tăng maxmemory hoặc tối ưu data
# 4. Expired keys — số key hết hạn
redis-cli INFO stats | grep expired_keys
# 5. Commands processed per second
redis-cli INFO stats | grep instantaneous_ops_per_sec
# Giúp đánh giá load hiện tại
2.2. SLOWLOG — Phát hiện query chậm
SLOWLOG ghi lại các lệnh thực thi chậm, giúp bạn phát hiện bottleneck:
# Cấu hình SLOWLOG
# redis.conf
slowlog-log-slower-than 10000 # Ghi log lệnh chạy > 10ms (microseconds)
slowlog-max-len 128 # Lưu tối đa 128 entries
# Xem SLOWLOG
redis-cli SLOWLOG GET 10 # Lấy 10 entries gần nhất
# Output:
# 1) 1) (integer) 145 # ID
# 2) (integer) 1616161616 # Timestamp
# 3) (integer) 15234 # Thời gian thực thi (microseconds)
# 4) 1) "KEYS" # Lệnh
# 2) "*" # Arguments
# 5) "127.0.0.1:54321" # Client
# 6) "" # Client name
# Reset SLOWLOG
redis-cli SLOWLOG RESET
Lưu ý: Các lệnh như KEYS *, HGETALL trên hash lớn, hoặc SORT không có LIMIT thườngxuất hiện trong SLOWLOG. Hãy tránh chúng trong production.
2.3. MONITOR — Debug real-time
# Xem tất cả lệnh đang được xử lý (real-time)
redis-cli MONITOR
# MONITOR làm giảm hiệu năng khoảng 50%
# Chỉ dùng khi debug, KHÔNG dùng trong production liên tục
# Kết hợp với grep để filter
redis-cli MONITOR | grep "SET"
2.4. Redis Insight — GUI chính thức
Redis Insight là công cụ GUI miễn phí chính thức từ Redis, cung cấp:
- Real-time dashboard: Biểu đồ memory, CPU, connections theo thời gian thực
- Browser: Duyệt và chỉnh sửa dữ liệu trực quan
- Profiler: Phân tích lệnh đang chạy
- Slowlog analysis: Trực quan hóa các query chậm
- Memory analysis: Tìm key chiếm nhiều bộ nhớ nhất
# Chạy Redis Insight bằng Docker
docker run -d
--name redis-insight
-p 5540:5540
redis/redis-insight:latest
# Truy cập: http://localhost:5540
2.5. Prometheus + Grafana — Monitoring stack hoàn chỉnh
# Sử dụng redis_exporter để expose metrics cho Prometheus
docker run -d
--name redis-exporter
-p 9121:9121
-e REDIS_ADDR=redis://your-redis-host:6379
oliver006/redis_exporter:latest
# Cấu hình Prometheus (prometheus.yml)
# scrape_configs:
# - job_name: 'redis'
# static_configs:
# - targets: ['redis-exporter:9121']
Bai tiep theo
Bai tiep theo: Redis Security, Backup va Production Deployment
Xem thêm: Tất cả bài viết về Redis · Redis trong Production · Persistence RDB vs AOF