Zpět na znalosti

Zkušenosti

Redis

Redis používám pro rychlý provozní stav a koordinaci. Důležitější než samotný nástroj je pro mě jasně určit, co je cache a co zůstává zdrojem pravdy.

  • Cache
  • TTL
  • Rate limiting
  • Koordinace úloh
  • RedisInsight

Rychlá data nesmějí zakrýt správnost systému.

V integračních a backendových službách Redis vnímám jako doplněk relační databáze: pro cache, krátkodobá data, čítače nebo koordinaci procesů. Neumisťuji do něj bez rozmyslu jedinou kopii obchodně důležitých dat.

Při návrhu řeším TTL, invalidaci, limit paměti i to, co se stane při výpadku. U zámků a plánovaných úloh rozlišuji omezení souběhu od ochrany výsledného stavu před duplicitou.

Jak k Redisu přistupuji

Od konkrétního problému k provozně bezpečnému použití.

  1. Cache

    Kopie dat, ne druhá databáze

    Cache používám jen tam, kde jsou data znovu dostupná ze zdroje pravdy. Při změně řeším invalidaci nebo obnovu a při výpadku fallback bez zhroucení celé aplikace.
  2. TTL a limity

    Předvídatelná životnost klíčů

    Klíče pojmenovávám podle odpovědnosti, nastavím přiměřenou expiraci a hlídám paměť, evikce i chybovost. TTL je kompromis mezi čerstvostí dat a zátěží.
  3. Koordinace

    Krátký zámek není důkaz výsledku

    Při koordinaci úloh pracuji s vlastnictvím zámku a jeho platností. Výsledek synchronizace chráním idempotentním návrhem a databázovými pravidly i mimo Redis.

Rozdělení odpovědností

Redis řeší rychlou vrstvu, ne obchodní pravdu.

Konkrétní mechanismus volím podle dat a ceny chyby. Cache, rate limiting a koordinace mají jiné nároky na expiraci, obnovu i monitoring.

Redis zámek může omezit souběh. Nezaručuje však exactly once zpracování ani nenahrazuje constrainty a transakce v databázi.

Cache-aside

Rychlé čtení s bezpečným fallbackem

  1. Čtení klíče s TTL
  2. Cache miss → zdroj pravdy
  3. Zápis odvozené hodnoty
  4. Invalidace po změně

Koordinace úlohy

Omezení souběhu s ochranou výsledku

  1. Atomické získání s TTL
  2. Jedinečný owner token
  3. Krátká kritická část
  4. Idempotentní databázový výsledek

Používám kolem Redisu

Data, provoz a integrace

  • Redis
  • RedisInsight
  • PostgreSQL
  • Symfony
  • Docker
  • Monitoring
  • PHPUnit

Potřebujete zrychlit nebo zkoordinovat backendovou službu?

Rád pomohu určit, zda je Redis vhodný pro konkrétní cache, limit, plánovanou úlohu nebo integrační tok — a co musí zůstat v autoritativním úložišti.

Zavolejte mi

Zavolám vám následující pracovní den mezi 9:00 a 17:00.

Můžete mi také zavolat rovnou.

+420 605 181 728

Nechte mi telefonní číslo a pošlete žádost o zpětné zavolání.

Odesláním souhlasíte se zpracováním údajů pro vyřízení žádosti.