Redis

Redis to backend cache, sesji i kolejek w Orbit. Wszystko, co przechowuje, jest jednorazowe, poza zadaniami w kolejce i aktywnymi sesjami (działa z persystencją append-only, więc te przetrwają restart); baza SQLite pozostaje jedynym źródłem prawdy.

Przewodniki, w kolejności, w jakiej faktycznie będą potrzebne

  1. Uruchom i obsługuj RedisaRedisUruchom i obsługuj Redisadocker-compose.yml definiuje usługę redis (redis:7-alpine). Nie publikuje żadnego portu: jest dostępna tylko wewnątrz sieci Dockera, jako host redis. Usług… — usługa Dockera redis, zmienne środowiskowe (także w Doppler), przełączanie sterowników cache/sesji/kolejek po kolei oraz podgląd i czyszczenie.
  2. Cache'uj wartość i unieważniaj jąRedisCache'uj wartość i unieważniaj jąDwa narzędzia, oba w app/Support/Cache/CacheVersion.php oraz zwykły Cache: — CacheVersion, zakres członkostwa i to, co musi podnieść wersję, gdy dodajesz nową ścieżkę zapisu.
  3. Sesje na RedisieRedisSesje na RedisiePrzy SESSIONDRIVER=database strona Security wypisuje tabelę sessions. Redis przechowuje jeden nieprzezroczysty payload na id sesji i nie da się go przeszuk… — dlaczego strona Security potrzebuje SessionRegistry i jak działa.

Co jest dziś cache'owane

DaneGdzieUnieważniane przez
Powiadomienia użytkownika (najnowsze 100)NotificationService::getAllForUserstore, update, delete, mark-all-read
Lista projektów użytkownika i "ma projekty"ProjectServicewersję członkostwa
Rola i uprawnienia użytkownika w projekcieProject::membershipOf()wersję członkostwa
Listy zgłoszeń: dashboard, strona tabeli projektu, kalendarzIssueServicewersje zgłoszeń, użytkowników i członkostwa (TTL 2 minuty)
Sesje, rate limiter, kolejka, blokadysterowniki Laravelanie dotyczy

Odczyty powiadomień, listy projektów i uprawnień to współdzielone propsy Inertia albo sprawdzenia uprawnień, które wykonują się przy (prawie) każdym żądaniu; listy zgłoszeń to najcięższe zapytania stron.