Leeren des REDIS-Cache

Antworten:

12

Mit der Schaltfläche "Magento-Cache leeren" werden Cache-Datensätze nur anhand ihrer Tags gelöscht. Dies verwendet den Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAGModus beim Aufrufen von clean im Cache-Backend.

Mit der Schaltfläche "Cache-Speicher leeren" wird das gesamte Cache-Backing (wo das Backend es unterstützt) geleert, wobei der Zend_Cache::CLEANING_MODE_ALLModus beim Aufrufen von clean im Cache-Backend verwendet wird.

Das Cm_Cache_Backend_Redis unterscheidet zwischen den beiden Modi und behandelt beide ordnungsgemäß.

Was passiert in Redis, wenn der "Cache-Speicher" geleert wird:

1380734058.807909 [0 127.0.0.1:61926] "flushdb"

Was in Redis passiert, wenn der "Magento Cache" geleert wird, sieht ungefähr so ​​aus ...

1380733999.123304 [0 127.0.0.1:61889] "sunion" "zc:ti:541_MAGE"
1380733999.127239 [0 127.0.0.1:61889] "multi"
1380733999.127294 [0 127.0.0.1:61889] "del" "zc:k:541_APP_E4D52B98688947405EDE639E947EE03D" "zc:k:541_CORE_CACHE_OPTIONS" ... etc ...
1380733999.127493 [0 127.0.0.1:61889] "del" "zc:ti:541_MAGE"
1380733999.127523 [0 127.0.0.1:61889] "srem" "zc:tags" "541_MAGE"
1380733999.127547 [0 127.0.0.1:61889] "exec"
1380733999.128596 [0 127.0.0.1:61889] "sunion" "zc:ti:541_CONFIG"
1380733999.131160 [0 127.0.0.1:61889] "multi"
1380733999.131192 [0 127.0.0.1:61889] "del" "zc:k:541_CONFIG_GLOBAL_ADMIN" "zc:k:541_ENTERPRISE_LOGGING_CONFIG" ... etc ...
1380733999.131360 [0 127.0.0.1:61889] "del" "zc:ti:541_CONFIG"
1380733999.131379 [0 127.0.0.1:61889] "srem" "zc:tags" "541_CONFIG"
1380733999.131397 [0 127.0.0.1:61889] "exec"

Sie werden feststellen, dass im ersten ein einzelner Befehl von Redis verarbeitet wird, im späteren Beispiel, in dem zwei Cache-Präfixe verwendet werden, um alle zugehörigen Cache-Datensätze zu löschen. Basierend auf dem, was ich hier (und im Code) sehe, werden die Präfixe '541_MAGE' und '541_CONFIG' in separaten Aufrufen an das Cache-Backend gelöscht, wobei die Konfiguration unmittelbar auf die andere folgt.

Davidalger
quelle
Das einzige, was ich nicht überprüft habe, ist, dass die Flushddb beide Datenbanken ordnungsgemäß löscht, aber ich denke, es ist sicher anzunehmen, dass dies der Fall ist, da ich keine Probleme damit hatte
Davidalger
Sie können flushallfür alles oder flushdbfür eine einzelne Datenbank verwenden.
Steve Robbins
9

Ich habe ein Modul erstellt, mit dem Sie mehr Massenoperationen vom Administrator aus ausführen können. Wenn Sie auf "DB leeren" klicken, wird der flushdbBefehl tatsächlich ausgeführt .

Geben Sie hier die Bildbeschreibung ein

Download: https://github.com/steverobbins/Magento-Redismanager

Andernfalls müssen Sie die Befehlszeile verwenden, um sie "vollständig" zu leeren.

Steve Robbins
quelle
2

Um Ihre Frage tatsächlich zu beantworten: "Wird eine der Tasten REDIS SPÜLEN?"

JA ist die Antwort, Sie können den Magento-Cache über den Administrator bereinigen. Sie können die Datei auch über die Befehlszeile spülen, aber das war nicht Ihre Frage ...

Ich bin mir nicht sicher, warum dies abgelehnt wird. Wenn Sie Redis für den Cache im Backend ordnungsgemäß verwenden, funktioniert dies.

Das solltest du auch haben

mprototype
quelle