Redis có khả năng lưu trữ dữ liệu vĩnh viễn, nhưng bản chất chính của Redis là một cơ sở dữ liệu trong bộ nhớ (in-memory database). Điều này có nghĩa là dữ liệu được lưu trữ chủ yếu trong RAM để đạt hiệu suất truy cập nhanh. Tuy nhiên, Redis cũng cung cấp các cơ chế để lưu trữ dữ liệu một cách bền vững (persistence) ra ổ đĩa để bảo toàn dữ liệu sau khi hệ thống khởi động lại hoặc khi có sự cố.
Redis hỗ trợ hai phương thức lưu trữ vĩnh viễn:
- RDB (Redis Database Backup):
- Redis sẽ tạo ra các bản sao lưu (snapshot) định kỳ của dữ liệu vào một file trên ổ đĩa. Phương pháp này có thể cấu hình để thực hiện việc sao lưu dữ liệu theo các khoảng thời gian cố định hoặc khi số lượng thay đổi trên dữ liệu đạt đến một ngưỡng nhất định.
- Ưu điểm: Phương thức này nhanh chóng và tiêu thụ ít tài nguyên hệ thống hơn.
- Nhược điểm: Do là sao lưu định kỳ nên nếu hệ thống gặp sự cố giữa các lần sao lưu, có thể sẽ mất một lượng dữ liệu chưa được sao lưu.
- AOF (Append-Only File):
- Redis ghi lại từng lệnh ghi (write operation) mà nó nhận được vào một file (append-only log) trên ổ đĩa. Điều này giúp đảm bảo rằng mọi thay đổi đều được ghi lại và có thể khôi phục toàn bộ dữ liệu sau khi khởi động lại.
- Ưu điểm: Độ an toàn cao hơn so với RDB vì AOF ghi lại từng thay đổi theo thời gian thực.
- Nhược điểm: AOF tốn nhiều tài nguyên hệ thống hơn do ghi vào đĩa thường xuyên.
Kết luận:
Redis có khả năng lưu trữ dữ liệu vĩnh viễn nhờ vào các cơ chế RDB và AOF, nhưng mặc định, nó được tối ưu hóa cho lưu trữ trong bộ nhớ. Nếu cần dữ liệu bền vững, bạn có thể bật các cơ chế trên hoặc kết hợp cả hai để tăng tính an toàn dữ liệu.