Redis keyspace cheat sheet¶
Inventory of every Redis key prefix used by the Evospin platform, with purpose and source. Cache Redis runs on port 6379 (password cache); the bot Redis on 6380 (password bot) is separate and used only by apps/api/src/bots/.
| Prefix | Purpose | Source |
|---|---|---|
bull:* |
BullMQ queues (sessions, bets, bots, leaderboard, promo-expired, rakeback, skindeck, SpeedRoulette*) | @nestjs/bullmq |
throttler:* |
Sliding-window counters (Lua evalsha) |
global Nest throttler |
USER_DETAILS_* |
60 s admin user cache | user/const.ts |
ONLINE_USERS_KEY zset |
member=userId, score=last-warm-up epoch ms · TTL sweep every minute | apps/rt/src/online-tracker/ |
auth-session:<userId>:* |
Active session metadata | session.service.ts |
user:password-reset-cooldown:<email> |
40 s cooldown; only written when user exists (sign-in timing oracle twin) | user.service.ts:846-870 |
user_lockout:<email> + user_attempts:<email> |
Sign-in rate limit (SF-002 counter-reset bug — see ../weaknesses-register.md) |
user.service.ts:920-947 |
gateway pub/sub channels (server_channel_event.*, private_channel_event.*, client_channel_event.*) |
Nest microservice transport — no traceparent, see ../weaknesses-register.md AF-2 |
@app/gateway |
profile-notifier channel |
ProfileNotifierService.onProfileUpdated → rt force-disconnect on ban |
user/profile-notifier.service.ts |
Related¶
- BullMQ design (why BullMQ + Redis, not RabbitMQ): ADR-0003.
- Throttler internals:
libs/ws-throttler/source +../api-reference/index.md§"Top gotchas" #5. - Trace propagation gap on the gateway pub/sub channels: ADR-0005.
- For the full data model (Postgres entities + relationships): see the per-domain ERDs in
README.md.