Löschen von Laravel 4 cache-Speicher-mit-Muster für die Schlüssel?
Mein Paket nutzen wir das Laravel-cache,
Jeden cache-key erstellen wir vorangestellt ist, so erhalten wir mypackage-config
, mypackage-md5ofafilename
An-mal muss ich Spülen, um alle cache-Dateien, dass mein Paket erstellt hat, das Problem? Ich weiß nur das Muster des cache-keys, ich weiß nicht, der ganze Schlüssel!
So, ich brauche einen Weg zu gehen Cache::forget('mypackage-*')
oder ähnliches, ist das möglich?
Wenn es nur für mein system, ich weiß, ich bin mit dem Datei-cache, so konnte ich manuell die Verknüpfung der Dateien, sondern auch, weil es ein generisches Paket-ich weiß nicht, welche cache-Methode, die der end-Benutzer, ich weiß nur das interface (aka die Laravel-cache-Schnittstelle).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfach - verwenden
Cache::getMemory()
p.s. dont jemals unlink 'cache' - Dateien manuell. Laravel-cache speichert alle cache-Einträge in ein array, so wird es erwartet werden, die Datei dort zu sein, auch wenn Sie 'unlink' es.
"error":{"type":"ErrorException","message":"call_user_func_array() expects parameter 1 to be a valid callback, class 'Illuminate\\Cache\\MemcachedStore' does not have a method 'getMemory'","file":"\/Users\/ericcumbee\/Desktop\/phpprojects\/sblitz\/vendor\/laravel\/framework\/src\/Illuminate\/Cache\/Repository.php","line":277}
Fehler für mich in Laravel 4.2 Verwendung von memcachedAndere Lösung: solange Sie nicht verwenden von Datei-oder Datenbank-cache können Sie Gebrauch machen von Cache Tags.
Nur-tag jedes cache-Eintrag mit Ihrem Paket-Namen:
(Sie können auch die
tags
Methode mitremember
,forever
, undrememberForever
)Wenn es Zeit ist, leeren Sie den cache Ihres Pakets Einträge nur tun
Hinweis:
Wenn Sie brauchen, um den Zugriff auf die cache-Einträge, die Sie noch brauchen, um die Referenz-tags. E. g.
So, noch einen cache-Eintrag mit Schlüssel
config
mit einem anderen tag versehen werden (z.B.hisPackage
) werden nicht in Konflikt mit Ihnen.Hier ist die gleiche Lösung wie in der akzeptierten Antwort, aber umgeschrieben speziell für Redis.
Mit den TASTEN
Mit SCAN (Redis >= 2.8.0)
KEYS
wird dringend abgeraten, da es eine O(N) Befehl (D. H., die Sie auslösen könnte eine DoS läuft es so gut, wie anstrengend Ihre server RAM in Vorbereitung der reply-Puffer). Als der v2.8 der empfohlene Ansatz ist die Verwendung derSCAN
Befehl.Hier ist ein Redis-spezifischen Beispiel, um alle Schlüssel, basierend auf einem gegebenen Präfix. Diese basiert auf Kasik Antwort, mit einigen Umstrukturierungen und zusätzliche Sicherheit.
Beachten Sie, dass RedisStore ist unter dem namespace
Illuminate\Cache\RedisStore