Redis
 sql >> база данни >  >> NoSQL >> Redis

Django REST рамката все още отговаря с кеширани данни дори след като има празни ключове за redis

Заявката от 4. дори не удря кеша на redis, защото връща локален кеш (обърнете внимание на „От дисковия кеш“ в кода на отговора).

Трябва да правите разлика между публичен кеш (т.е. кеш на сървъра, използван от всички потребители) и частен кеш (кеш на браузъра на потребителя).

Мисля, че когато използвате cache_page декоратор, освен че кешира заявката, той също така задава заглавки на отговора "Cache-control", за да позволи частен кеш на заявката. Браузърът използва тези заглавки, за да кешира локално заявката и да върне локално кеширан отговор до max-age изтича.

За да предотвратите това поведение, на ниво сървър можете да използвате @never_cache декоратор, който задава Cache-control заглавки на отговора, за да предотвратите локално кеширане, или използвайте @cache_control(public=True) да разрешите само публичен кеш на заявката (това също така коригира съответно заглавките на отговора за контрол на кеша).

Повече за Контрол на кеша.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. обработка на промени в пространството на имена по време на десериализация на JSON низ

  2. Какво прави параметърът за свързване в Redis?

  3. HSET, ако съществува ключ

  4. Поддържане на отворена връзка с Redis с помощта на BookSleeve

  5. Сортиран набор с фиксиран размер в Redis?