Redis
View on GitHubRedis
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
- 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. - 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. - 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
SessionRegistryi jak działa.
Co jest dziś cache'owane
| Dane | Gdzie | Unieważniane przez |
|---|---|---|
| Powiadomienia użytkownika (najnowsze 100) | NotificationService::getAllForUser | store, update, delete, mark-all-read |
| Lista projektów użytkownika i "ma projekty" | ProjectService | wersję członkostwa |
| Rola i uprawnienia użytkownika w projekcie | Project::membershipOf() | wersję członkostwa |
| Listy zgłoszeń: dashboard, strona tabeli projektu, kalendarz | IssueService | wersje zgłoszeń, użytkowników i członkostwa (TTL 2 minuty) |
| Sesje, rate limiter, kolejka, blokady | sterowniki Laravela | nie 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.
