sql >> Databáze >  >> NoSQL >> Redis

Rámec Django REST stále reaguje s daty uloženými v mezipaměti, i když máte prázdné klíče redis

Požadavek ze 4. nezasáhne ani mezipaměť redis, protože vrátí místní mezipaměť (všimněte si „Z diskové mezipaměti“ v kódu odpovědi).

Měli byste rozlišovat mezi veřejnou mezipamětí (tj. mezipaměť serveru používanou všemi uživateli) a soukromou mezipaměť (mezipaměť prohlížeče uživatele).

Myslím, že při použití cache_page decorator, kromě ukládání požadavku do mezipaměti, také nastavuje hlavičky odpovědí "Cache-control", aby umožnila soukromou mezipaměť požadavku. Prohlížeč používá tyto hlavičky k místní mezipaměti požadavku a vrací místní odpověď uloženou v mezipaměti do max-age vyprší.

Chcete-li tomuto chování zabránit, na úrovni serveru můžete použít @never_cache dekorátor, který nastavuje Cache-control hlavičky odpovědí, abyste zabránili místnímu ukládání do mezipaměti, nebo použijte @cache_control(public=True) povolit pouze veřejnou mezipaměť požadavku (tím se také odpovídajícím způsobem upraví hlavičky odpovědí řízení mezipaměti).

Více o ovládání mezipaměti.




  1. MongoDB updateMany()

  2. Automatické zálohování MongoDB

  3. Získání $skupinového výsledku s počtem skupin

  4. Chyba ověření Redis u Node.js a socket.io