Trung BìnhRedis iconRedis

Redis eviction policies: LRU, LFU, allkeys vs volatile — khi nào dùng policy nào?

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 data
  • allkeys-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úy
  • allkeys-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àng
  • allkeys-random: evict random — hiếm dùng
  • volatile-lru: evict key có TTL, ưu tiên LRU — dùng khi mix cache + persistent keys
  • volatile-lfu: evict key có TTL, ưu tiên LFU
  • volatile-random: evict random trong keys có TTL
  • volatile-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.

Xem toàn bộ Redis cùng filter theo level & chủ đề con.

Mở danh sách Redis