Hit ratio thấp nghĩa là phần lớn request vẫn xuống DB mà hệ thống vẫn phải trả chi phí duy trì cache. Thứ tự kiểm tra:
1. Key có bị phân mảnh quá mức không. Key chứa tham số không cần thiết (timestamp, request id, tracking param) làm mỗi request sinh một key mới — hit ratio gần 0 theo thiết kế. Lấy mẫu bằng SCAN và xem hình dạng key thực tế.
2. TTL quá ngắn so với tần suất truy cập. Nếu một key được đọc trung bình 3 phút một lần mà TTL 60s thì phần lớn lượt đọc là miss. So sánh TTL với khoảng cách giữa hai lần đọc.
3. Đang bị evict vì hết bộ nhớ. Kiểm tra INFO stats — evicted_keys tăng đều nghĩa là dataset lớn hơn maxmemory, key bị đẩy ra trước khi hết TTL. Hoặc tăng RAM, hoặc chỉ cache tập nóng.
redis-cli INFO stats | grep -E 'keyspace_hits|keyspace_misses|evicted_keys'4. Phân bố truy cập vốn dĩ phẳng. Nếu mỗi item chỉ được đọc 1-2 lần (vd trang chi tiết của hàng triệu sản phẩm đuôi dài), không có cache nào cứu được — vấn đề nằm ở chỗ dữ liệu không có tập nóng. Khi đó tối ưu index/truy vấn có giá trị hơn là mở rộng cache.
Cũng nên tính hit ratio theo từng nhóm key thay vì tính tổng: con số tổng thường bị một nhóm key rác kéo xuống trong khi nhóm quan trọng vẫn tốt.