TTL là thời gian sống của một entry trước khi bị xoá tự động. Không có con số đúng cho mọi trường hợp — chọn theo mức cũ mà nghiệp vụ chịu được:
- Dữ liệu gần như tĩnh (danh mục, cấu hình): vài giờ tới 1 ngày.
- Dữ liệu đọc nhiều, đổi vừa (danh sách bài viết, hồ sơ): 1-10 phút.
- Dữ liệu nhạy cảm về độ chính xác (số dư, tồn kho): rất ngắn hoặc không cache.
Jitter là cộng thêm một lượng ngẫu nhiên vào TTL. Nếu 10.000 key được ghi cùng lúc (sau một lần warm-up hoặc deploy) và cùng TTL 300s, chúng sẽ hết hạn đồng loạt ở giây thứ 300 và toàn bộ traffic dồn xuống DB trong một nhịp.
js
const base = 300
const ttl = base + Math.floor(Math.random() * 60) // spread expiry over a 60s window
await redis.set(key, JSON.stringify(value), 'EX', ttl)Jitter phân tán thời điểm hết hạn nên tải xuống DB trở nên phẳng thay vì dạng gai.
Cùng nguyên tắc với backoff có jitter khi retry.