django: Cache aufräumen nicht möglich???

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 19. September 2007, 17:28

Sagt mal. Ist es möglich den Cache, egal welches Backend genutzt wurde, komplett zu löschen? Ich finde da spontan nix.

Ich hab nämlich das Problem von http://pylucid.net:8080/pylucid/ticket/94 :
Nachdem eine Seite editiert wurde, sollte der Cache auch aktualisiert werden. Eigentlich wäre es das beste den ganzen Cache zu löschen und neu aufbauen zu lassen...

Kann es sein, das man das nicht kann?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Mittwoch 19. September 2007, 20:47

Code: Alles auswählen

from django.core.cache import cache
cache.delete(your_cache_key)
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 20. September 2007, 08:16

Damit lösche ich einen Eintrag im cache. Ich möchte aber alle löschen. Dazu brauche ich also alle verwendeten Cache-Keys.
Ich glaube eine seperate Tabelle mit den Cache-Keys zu pflegen, ist keine gut Idee.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Donnerstag 20. September 2007, 11:45

Das geht natürlich nicht, weil Backends das nicht alle bereitstellen können. Aber das ist auch eine sehr unelegante Lösung, invalidiere die Daten einfach.
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 20. September 2007, 12:39

Die Daten invalidieren?!?! Was meinst du damit?

Nochmal das Problem: Ich cache die gesamte Seite, z.B. auch mit dem Hauptmenü. Allerdings nur für unangemeldete User.
Wenn nun jemand sich einloggt und eine Seite umbenennt, löscht verschiebt ect. ist in allen Seiten aus dem Cache das Hauptmenü veraltet.

OK, der Cache hat mit CACHE_MIDDLEWARE_SECONDS eine begrenzte Lebensdauer, aber die Zeit kann ja sehr hoch gewählt werden...

Meine Idee war es nun, nach einer Änderung alle Cache Daten zu löschen.
z.Z. nutzte ich nur das einfache "Filesystem caching". Ich könnte also selber die Dateinamen einlesen oder gleich löschen. Aber das wäre eine dumme Idee.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten