Begäran från 4. träffar inte ens redis-cachen, eftersom den returnerar en lokal cache (notera "Från diskcache" i svarskoden).
Du bör skilja mellan en offentlig cache (dvs. servercachen som används av alla användare) och en privat cache (användarens webbläsarcache).
Jag tror att när du använder cache_page
dekorator, förutom att cache för begäran, ställer den också in "Cache-kontroll" svarsrubriker för att tillåta en privat cache för begäran. Webbläsaren använder dessa rubriker för att cachelagra begäran lokalt och returnera ett lokalt cachat svar tills max-age
går ut.
För att förhindra detta beteende, på servernivå, kan du använda @never_cache
decorator, som ställer in Cache-control
svarsrubriker för att förhindra lokal cachelagring, eller använd @cache_control(public=True)
för att endast tillåta offentlig cache för begäran (detta justerar också cachekontrollsvarets rubriker i enlighet därmed).
Mer om kontroll av cache.