Redis
View on GitHubRedis
Redis is Orbit's cache, session and queue backend. Everything it holds is disposable except queued jobs and live sessions (it runs with append-only persistence so those survive a restart); the SQLite database stays the single source of truth.
Guides, in the order you'd actually need them
- Run and operate RedisRedisRun and operate Redisdocker-compose.yml defines a redis service (redis:7-alpine). It publishes no port: it is reachable only inside the Docker network, as the host redis. The a… — the
redisDocker service, the env variables (including Doppler), switching the cache/session/queue drivers one by one, and inspecting or flushing it. - Cache a value and invalidate itRedisCache a value and invalidate itTwo tools, both in app/Support/Cache/CacheVersion.php and plain Cache:
—
CacheVersion, the membership scope, and what must move the version when you add a write path. - Sessions on RedisRedisSessions on RedisWith SESSIONDRIVER=database the Security page lists the sessions table. Redis stores one opaque payload per session id and cannot be searched by user, so A… — why the Security page
needs the
SessionRegistryand how it works.
What is cached today
| Data | Where | Invalidated by |
|---|---|---|
| A user's notifications (newest 100) | NotificationService::getAllForUser | store, update, delete, mark-all-read |
| A user's project list and "has projects" | ProjectService | the membership version |
| A user's role and permissions on a project | Project::membershipOf() | the membership version |
| Issue lists: dashboard counts, a project's table page, the calendar range and deadlines | IssueService | the issues, users and membership versions (2-minute TTL) |
| Sessions, rate limiter, queue, locks | Laravel drivers | not applicable |
The notification, project-list and permission reads are shared Inertia props or authorization checks that run on (almost) every request; the issue lists are the heaviest page queries.
