Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Khung công tác Django REST vẫn phản hồi với dữ liệu được lưu trong bộ nhớ cache ngay cả khi có các phím redis trống

Yêu cầu từ 4. thậm chí không đạt được bộ nhớ cache redis, vì nó trả về một bộ nhớ cache cục bộ (lưu ý "Từ bộ nhớ cache trên đĩa" trong mã phản hồi).

Bạn nên phân biệt giữa bộ nhớ đệm công khai (tức là bộ đệm ẩn máy chủ được sử dụng bởi tất cả người dùng) và bộ nhớ đệm riêng (bộ đệm ẩn trình duyệt của người dùng).

Tôi nghĩ, khi sử dụng cache_page decorator, ngoài bộ nhớ đệm yêu cầu, nó còn đặt các tiêu đề phản hồi "Cache-control" để cho phép một bộ nhớ cache riêng của yêu cầu. Trình duyệt sử dụng các tiêu đề đó để lưu cục bộ yêu cầu và trả về phản hồi được lưu cục bộ trong bộ nhớ cache cho đến khi max-age hết hạn.

Để ngăn chặn hành vi này, ở cấp máy chủ, bạn có thể sử dụng @never_cache decorator, đặt Cache-control tiêu đề phản hồi để ngăn bộ nhớ đệm cục bộ hoặc sử dụng @cache_control(public=True) để chỉ cho phép bộ nhớ cache công khai của yêu cầu (điều này cũng điều chỉnh các tiêu đề phản hồi kiểm soát bộ nhớ cache cho phù hợp).

Thông tin thêm về Kiểm soát bộ nhớ cache.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Docker-compile - Redis ở mức 0.0.0.0 thay vì 127.0.0.1

  2. Mac (os x):Có cách nào để CHỈ cài đặt redis-cli không?

  3. Nhận địa chỉ Redis Master từ Sentinel C #

  4. Sự vô hiệu hóa Stack Overflow, Redis và Cache

  5. Websocket đã ngắt kết nối Cuộc gọi kết nối không thành công