Bạn có biết?
Redis lưu dữ liệu trong memory — nhanh nhưng “mất điện” là mất hết. Vậy khi server restart, dữ liệu đi đâu? Câu trả lời nằm ở persistence — cơ chế ghi dữ liệu xuống disk. Redis cung cấp hai cách: RDB (snapshot định kỳ) và AOF (ghi log từng lệnh). Hiểu rõ cả hai giúp bạn không bao giờ mất dữ liệu quan trọng.
Tại sao cần Persistence?
Redis là in-memory database — tất cả dữ liệu nằm trong RAM. Nếu Redis crash hoặc restart:
- Không có persistence → Mất toàn bộ dữ liệu
- Có RDB → Khôi phục từ snapshot gần nhất (có thể mất vài phút dữ liệu)
- Có AOF → Khôi phục gần như đầy đủ (mất vài giây hoặc không mất)
RDB — Redis Database Backup
RDB tạo snapshot toàn bộ dataset tại một thời điểm và lưu vào file dump.rdb.
Cách hoạt động
# Redis tự động tạo snapshot theo cấu hình
# Ví dụ: sau 900 giây nếu có ít nhất 1 key thay đổi
save 900 1
# Hoặc sau 300 giây nếu có ít nhất 10 keys thay đổi
save 300 10
# Hoặc sau 60 giây nếu có ít nhất 10000 keys thay đổi
save 60 10000
Cấu hình RDB
Trong file redis.conf:
# Snapshot rules
save 900 1
save 300 10
save 60 10000
# Tên file dump
dbfilename dump.rdb
# Thư mục lưu file
dir /var/lib/redis/
# Nén file dump (mặc định bật)
rdbcompression yes
# Kiểm tra checksum khi load
rdbchecksum yes
# Tắt RDB (nếu chỉ dùng AOF)
save ""
Tạo snapshot thủ công
# Tạo snapshot ngay lập tức (background)
BGSAVE
# Redis fork process con để tạo snapshot
# Không block chính process
# Tạo snapshot foreground (block Redis)
SAVE
# Dùng khi cần đảm bảo snapshot hoàn thành ngay

0 bình luận
Đang tải bình luận...
Để lại bình luận