Redis có 8 eviction policy; allkeys-lru là lựa chọn tốt nhất cho pure cache, volatile-lru khi mix cache và persistent keys, noeviction khi data không được phép mất.
Khi Redis đạt maxmemory, eviction policy quyết định key nào bị xóa để nhường chỗ. Có 8 policy chính:
noeviction(default): trả lỗi khi full — dùng cho DB không chấp nhận mất dataallkeys-lru: evict key ít dùng gần đây nhất trong toàn bộ keyspace — tốt nhất cho cache thuần túyallkeys-lfu(Redis 4.0+): evict key ít được access nhất về tần suất — tốt hơn LRU khi access pattern có hot/cold keys rõ ràngallkeys-random: evict random — hiếm dùngvolatile-lru: evict key có TTL, ưu tiên LRU — dùng khi mix cache + persistent keysvolatile-lfu: evict key có TTL, ưu tiên LFUvolatile-random: evict random trong keys có TTLvolatile-ttl: evict key có TTL ngắn nhất — dùng khi muốn keys expire sớm bị evict trước
Thực tế: cache-only Redis → allkeys-lru; Redis vừa cache vừa persistent → volatile-lru (chỉ evict keys có TTL, không đụng đến persistent keys). Monitor evicted_keys metric để biết eviction đang xảy ra.