sql >> Database teknologi >  >> NoSQL >> Redis

Django REST framework reagerer stadig med cachelagrede data, selv efter at have tomme redis nøgler

Anmodningen fra 4. rammer ikke engang redis-cachen, fordi den returnerer en lokal cache (bemærk "Fra disk-cachen" i svarkoden).

Du bør skelne mellem en offentlig cache (dvs. servercachen, der bruges af alle brugere) og en privat cache (brugerens browsercache).

Jeg tror, ​​når du bruger cache_page dekorator, bortset fra at cache anmodningen, sætter den også "Cache-kontrol" svaroverskrifter for at tillade en privat cache af anmodningen. Browseren bruger disse overskrifter til at cache anmodningen lokalt og returnere et lokalt cachelagret svar indtil max-age udløber.

For at forhindre denne adfærd kan du på serverniveau bruge @never_cache dekorator, som sætter Cache-control svaroverskrifter for at forhindre lokal cachelagring, eller brug @cache_control(public=True) kun at tillade offentlig cache for anmodningen (dette justerer også cachekontrolsvarets overskrifter i overensstemmelse hermed).

Mere om kontrol af cache.




  1. Redis Pub/Sub med pålidelighed

  2. Antallet af udløbende nøgler opført efter info-kommando på redis slave er ikke i overensstemmelse med det, jeg ser

  3. golang + redis præstationsproblem med samtidighedsplanlægning

  4. MongoDB $toDecimal