Redis có cơ chế lưu xuống đĩa, nhưng độ bền vẫn thấp hơn một RDBMS và phải hiểu rõ trước khi tin tưởng.
Hai cơ chế:
- RDB: chụp snapshot toàn bộ dataset theo chu kỳ. File nhỏ, khởi động lại nhanh, nhưng mất phần dữ liệu ghi sau snapshot cuối (thường vài phút).
- AOF: ghi tiếp mọi lệnh thay đổi vào một file log. Bền hơn; với appendfsync everysec thì tối đa mất khoảng 1 giây dữ liệu. File lớn hơn, cần rewrite định kỳ.
Có thể bật cả hai: AOF để phục hồi bền, RDB để backup và khởi động nhanh.
Dùng làm DB chính? Chỉ khi dữ liệu chấp nhận mất một phần, hoặc có thể dựng lại từ nguồn khác (cache, session, rate-limit counter, leaderboard). Với dữ liệu bắt buộc không được mất (đơn hàng, giao dịch), Redis không thay được Postgres: không transaction đa bảng theo kiểu ACID với rollback tuỳ ý, không JOIN, không constraint, và dataset bị chặn bởi dung lượng RAM.