Redis-kompatible Caches
Eine ManagedValkey ist eine Valkey-Instanz — ein Redis-kompatibler, BSD-lizenzierter Key/Value-Speicher — für einen Cache oder einen Celery-artigen Queue-Broker. Sie rendert direkt, ohne separaten Operator: ein StatefulSet, ein Headless Service, ein Credentials-Secret.
apiVersion: paas.paasbox.com/v1alpha1kind: ManagedValkeymetadata: { name: broker, namespace: shop }spec: plan: s persistence: true maxmemoryPolicy: noevictionstatus: conditions: [Reconciled, Ready, Degraded] phase: Ready endpoint: { host: broker.shop.svc, port: 6379 } secretName: broker-credentialsEin Verfügbarkeits-Angebot, keine Datenbank
Abschnitt betitelt „Ein Verfügbarkeits-Angebot, keine Datenbank“ManagedValkey hat keine Backups, keine Point-in-Time-Recovery und keine Wiederherstellung. Als Cache ist das der Sinn: die Daten zu verlieren kostet ein paar langsame Anfragen, während er sich wieder füllt. Als Queue-Broker setze persistence: true, um die Append-only-Datei über Neustarts hinweg auf einem Volume zu behalten, und entwirf Consumer idempotent — ein Task kann im Prinzip mehr als einmal zugestellt werden. Wenn die Daten selbst überleben müssen, gehören sie in PostgreSQL, nicht hierher.
Was du einstellen kannst
Abschnitt betitelt „Was du einstellen kannst“-
plan—xs,s,moderl, dimensioniert CPU, Speicher und die Speicher-Untergrenze:Plan CPU Speicher Speicher-Untergrenze (Persistenz an) xs100m 128Mi 1Gi s250m 256Mi 1Gi m500m 512Mi 2Gi l1 1Gi 4Gi -
version—8, heute die einzige unterstützte Major-Version. -
persistence— standardmäßigfalse(ein Cache: neu erstellt, nicht wiederhergestellt, falls er je verloren geht). Nur beim Erstellen des Objekts gesetzt — später ändern bedeutet eine neue Instanz. -
storage— die Volume-Größe beipersistence: true; die Untergrenze des Plans gilt, wenn du weniger einstellst. Auch nur beim Erstellen gesetzt. -
maxmemoryPolicy—noeviction(Standard: beimaxmemoryschlagen Schreibvorgänge fehl, statt dass ein Key verworfen wird — die richtige Wahl für einen Broker) oderallkeys-lru(den am längsten nicht genutzten Key verwerfen — die richtige Wahl für einen Cache).maxmemoryselbst wird automatisch auf 80 % des Speichers des Plans gesetzt. -
hibernated—trueskaliert die Instanz auf null und behält ihr Volume, falls vorhanden.
Das Credentials-Secret und die Nutzung aus einer App
Abschnitt betitelt „Das Credentials-Secret und die Nutzung aus einer App“status.secretName trägt die servicebinding.io-Schlüssel type, provider, host, port, password, uri — die uri ist eine einfache redis://…-URL, sodass jede Redis-Client-Bibliothek unverändert funktioniert.
# an der Appuses: [{ name: broker, kind: ManagedValkey, prefix: REDIS_ }]injiziert REDIS_HOST, REDIS_PORT, REDIS_PASSWORD und REDIS_URI als Referenzen auf broker-credentials. Siehe eine App deployen für eine Worker-App, die einen Broker so nutzt.