Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Framework Django REST nadal odpowiada danymi z pamięci podręcznej, nawet po pustych kluczach redis

Żądanie z 4. nawet nie trafia do pamięci podręcznej redis, ponieważ zwraca lokalną pamięć podręczną (zwróć uwagę na „Z pamięci podręcznej dysku” w kodzie odpowiedzi).

Należy rozróżnić pamięć podręczną publiczną (tj. pamięć podręczną serwera używaną przez wszystkich użytkowników) i prywatną pamięć podręczną (pamięć podręczna przeglądarki użytkownika).

Myślę, że używając cache_page dekorator, oprócz buforowania żądania, ustawia również nagłówki odpowiedzi „Cache-control”, aby umożliwić prywatną pamięć podręczną żądania. Przeglądarka używa tych nagłówków do lokalnego buforowania żądania i zwraca lokalną buforowaną odpowiedź do momentu max-age wygasa.

Aby temu zapobiec, na poziomie serwera możesz użyć @never_cache dekorator, który ustawia Cache-control nagłówki odpowiedzi, aby zapobiec lokalnemu buforowaniu, lub użyj @cache_control(public=True) aby zezwolić tylko na publiczną pamięć podręczną żądania (to również odpowiednio modyfikuje nagłówki odpowiedzi kontroli pamięci podręcznej).

Więcej o kontrolowaniu pamięci podręcznej.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Filtrowanie elementów w Redis

  2. Jak połączyć się z instancją klastra Docker Redis przy użyciu jedis for Java?

  3. Laravel Socket.io Połączony, ale nie odbiera danych

  4. Jak mogę automatycznie utworzyć resque worker podczas uruchamiania?

  5. Redis connect ECONNREFUSED w NodeJS w klastrze Kubernetes