Redis mạnh nhờ chạy in-memory và đơn luồng cho việc thực thi lệnh — chính hai đặc điểm đó cũng là giới hạn:
- Bị chặn bởi RAM (memory-bound): toàn bộ dataset (nóng) phải nằm gọn trong RAM, mà RAM đắt hơn đĩa nhiều. Không hợp làm kho lưu trữ chính cho dữ liệu lớn hơn bộ nhớ.
- Key/value quá lớn: value nhiều MB gây spike latency, phân mảnh bộ nhớ, và một lệnh nặng làm nghẽn cả server đơn luồng.
- Lệnh trên collection lớn tốn kém: nhiều lệnh là O(N) (
LRANGEcả list,SMEMBERS,HGETALL,KEYS). Vì server xử lý lệnh tuần tự, một lệnh O(N) trên collection triệu phần tử block mọi client khác. - Truy vấn phức tạp / phân tích ad-hoc: không có join, không SQL phong phú — cần query đa chiều thì dùng RDBMS/search engine.
- Yêu cầu ACID/độ bền mạnh: Redis nghiêng về tốc độ; nếu bắt buộc bền vững tuyệt đối theo từng bản ghi thì database truyền thống phù hợp hơn.
Tóm lại: Redis lý tưởng làm cache, counter, session, hàng đợi nhẹ, leaderboard — không phải primary DB cho dữ liệu lớn hay truy vấn phức tạp.