cache ping

cache ping prüft, ob die beiden Zwischenspeicher erreichbar sind, die Apparat über einzelne Aufrufe hinweg braucht — und wo sie liegen. Reine Diagnose: keine Sammlung wird geöffnet, kein Index angefasst, nichts neu berechnet.

Wofür ist das?

Zwei Ergebnisse hält Apparat länger vor, weil sie teuer sind und sich nicht ändern:

Beide leben außerhalb des Arbeitsspeichers eines einzelnen Web-Prozesses — sonst ginge das Ergebnis zwischen Anfordern und Anzeigen verloren. Typische Aufrufer:

Aufruf

apparat cache ping

Das Kommando hat keine Optionen. Geprüft wird immer genau das, was die Installation tatsächlich benutzt — nicht eine fest verdrahtete Adresse.

Beispielausgaben

Alles in Ordnung:

Embedding vectors (shared across tenants) — store "redis-shared"
  Driver: redis
  Connection "cache-shared": redis:6379, database 1
  Key prefix: "apparat-shared-" (connection) + "apparat-cache-" (cache store)
✅ Round trip completed.
Relation suggestions (this tenant) — store "redis"
  Driver: redis
  Connection "cache": redis:6379, database 1
  Key prefix: "apparat-acme-" (connection) + "apparat-cache-" (cache store)
✅ Round trip completed.
✅ All configured caches are healthy.

Speicher nicht erreichbar:

Embedding vectors (shared across tenants) — store "redis-shared"
  Driver: redis
  Connection "cache-shared": redis:6379, database 1
  Key prefix: "apparat-shared-" (connection) + "apparat-cache-" (cache store)
❌ Store unreachable.
  Connection refused [tcp://redis:6379]
❌ At least one cache did not answer.

Geprüft wird mit einem vollständigen Durchlauf: schreiben, zurücklesen, wieder entfernen. Ein bloßes Lesen würde einen Speicher durchgehen lassen, der nur noch antwortet, aber nichts mehr behält — und genau das macht ihn nutzlos. Der Prüfeintrag trägt einen zufälligen Namen und ist nach dem Aufruf wieder weg.

Die zwei Namensräume

Jeder Schlüssel trägt zwei Präfixe, und die Ausgabe zeigt beide, weil eine Schlüsselliste sie aneinandergehängt zeigt:

Teil Woher Wozu
Verbindungs-Präfix REDIS_PREFIX, für den geteilten Speicher REDIS_SHARED_PREFIX Trennt Installationen voneinander — und Apparat von anderen Anwendungen, die sich denselben Speicher teilen.
Speicher-Präfix aus dem Anwendungsnamen abgeleitet Trennt Apparats Zwischenspeicher von anderen Daten derselben Anwendung.

Dass der geteilte Vektor-Speicher ein eigenes Verbindungs-Präfix hat, ist der Grund, warum er installationsübergreifend wirkt: Er entkommt damit bewusst dem Präfix der einzelnen Installation.

Exit-Codes

Code Bedeutung
0 Beide Zwischenspeicher haben den Durchlauf abgeschlossen.
1 Mindestens einer hat nicht geantwortet — oder der Prüfwert kam verändert zurück.

Konfiguration

Umgebungs­variable Bedeutung Default
REDIS_HOST Adresse des Speicher-Dienstes. 127.0.0.1
REDIS_PORT Port des Speicher-Dienstes. 6379
REDIS_PASSWORD Passwort, falls der Dienst eines verlangt. leer
REDIS_PREFIX Namensraum dieser Installation. vom Anwendungsnamen abgeleitet
REDIS_SHARED_PREFIX Namensraum des geteilten Vektor-Speichers. vom Anwendungsnamen abgeleitet

Ein Aufruf auf dem Host erreicht den Speicher-Dienst in der Regel nicht — er ist wie der Erkennungs-Dienst nur von innen sichtbar. Das apparat-Kommando führt cache ping deshalb automatisch im Container aus; aufrufseitig bleibt der Befehl gleich.

Was nebenbei wichtig ist

Ein ausgefallener Zwischenspeicher legt Apparat nicht lahm: Vektoren werden dann direkt berechnet, Beziehungsvorschläge bleiben aus, bis sie erneut angefordert werden. Spürbar ist der Ausfall als Langsamkeit und als Vorschläge, die nach jedem Aufruf neu erscheinen — nicht als Fehlermeldung. Genau deshalb lohnt der gelegentliche Blick mit cache ping.