Chính sách về Heroku Redis Maxmemory

Heroku cung cấp một addon Redis tuyệt vời, cung cấp 25MB bộ nhớ miễn phí.

Dung lượng lưu trữ này có thể dễ dàng lấp đầy chỉ với vài nghìn mục, tùy thuộc vào những gì bạn đang lưu trữ.

Heroku có một tùy chọn cấu hình được gọi làmaxmemory-policyxác định cách hệ thống sẽ hoạt động khi bộ nhớ cơ sở dữ liệu Redis được lấp đầy.

Theo mặc định, thuộc tính này được đặt thànhnoeviction, có nghĩa là Redis sẽ phát sinh lỗi khi cố gắng lưu trữ nhiều dữ liệu hơn.

Điều này được thực hiện để bạn nhận ra điều gì đang xảy ra và một khi bạn phát hiện ra rằng bạn có thể thay đổi hành vi này, đã đến lúc xác địnhlàm sao.

Các hành vi khác nhau được cung cấp bởi chính Redis, và chúng là:

  • noeviction: trả về lỗi khi đạt đến giới hạn bộ nhớ và máy khách đang cố gắng thực thi các lệnh có thể dẫn đến việc sử dụng nhiều bộ nhớ hơn (hầu hết các lệnh ghi, trừ lệnh DEL và một vài trường hợp ngoại lệ khác).
  • allkeys-lru: loại bỏ các khóa bằng cách cố gắng xóa các khóa ít được sử dụng gần đây (LRU) trước, để tạo khoảng trống cho dữ liệu mới được thêm vào.
  • volatile-lru: loại bỏ các khóa bằng cách cố gắng xóa các khóa ít được sử dụng gần đây (LRU) trước tiên, nhưng chỉ trong số các khóa có bộ hết hạn, để tạo khoảng trống cho dữ liệu mới được thêm vào.
  • allkeys-random: loại bỏ các phím một cách ngẫu nhiên để tạo khoảng trống cho dữ liệu mới được thêm vào.
  • volatile-random: loại bỏ các khóa một cách ngẫu nhiên để tạo khoảng trống cho dữ liệu mới được thêm vào, nhưng chỉ loại bỏ các khóa có tập hợp hết hạn.
  • volatile-ttl: loại bỏ các khóa có tập hợp hết hạn và trước tiên cố gắng loại bỏ các khóa có thời gian tồn tại ngắn hơn (TTL), để tạo khoảng trống cho dữ liệu mới được thêm vào.

Tùy thuộc vào bạn để tìm trường hợp tốt nhất cho nhu cầu của bạn. Sau khi bạn có một ứng cử viên, bạn có thể áp dụng thay đổi bằng cách sử dụng Heroku CLI, ví dụ:

heroku redis:maxmemory YOUR_REDIS_INSTANCE_NAME --policy volatile-lru