Redis — co to jest i jak działa?

Redis to in-memory baza danych używana jako cache, kolejka i message broker. Poznaj struktury danych, wzorce cachowania i kluczowe zastosowania Redis w produkcji.

Czym jest Redis?

Redis (Remote Dictionary Server) to open-source'owy in-memory data store — baza danych, cache i message broker działający w pamięci RAM. Oferuje ekstremalnie niskie opóźnienia (poniżej 1ms) i przepustowość ponad 1 milion operacji na sekundę.

W odróżnieniu od tradycyjnych baz danych (PostgreSQL, MySQL) Redis nie zapisuje na dysk przy każdej operacji — dane są w RAM. Persistence (trwałość) jest opcjonalna i realizowana przez snapshots (RDB) lub logi operacji (AOF).

sub-1ms

Typowe opóźnienie odczytu/zapisu — szybciej niż jakikolwiek dysk SSD

1M+ ops/s

Operacji na sekundę na jednym węźle. Skaluje się horyzontalnie przez Cluster

2009

Rok stworzenia przez Salvatore Sanfilippo. Od 2015 r. sponsorowany przez Redis Labs

Struktury danych Redis

1

String

Podstawowy typ — tekst, liczba, dane binarne (do 512MB). Atomowe operacje INCR/DECR.

Komendy:

SET user:1 'Jan Kowalski'

GET user:1

INCR page:views

SETEX session:abc 3600 '{...}'

Zastosowanie:

Cache, liczniki, sesje, rate limiting

2

List

Dwustronna kolejka (deque). LPUSH/RPUSH dodaje, LPOP/RPOP zdejmuje. Maks 2^32-1 elementów.

Komendy:

LPUSH queue:emails 'email1'

RPOP queue:emails

LRANGE recent:posts 0 9

Zastosowanie:

Kolejki zadań, aktywność (ostatnie N elementów), historia

3

Set

Nieuporządkowany zbiór unikalnych wartości. Operacje zbiorów: SUNION, SINTER, SDIFF.

Komendy:

SADD tags:post:1 'tech' 'redis'

SMEMBERS tags:post:1

SINTER user:1:follows user:2:follows

Zastosowanie:

Tagi, śledzenie unikalnych użytkowników, wspólni znajomi

4

Sorted Set (ZSet)

Set z numerycznym score. Automatycznie posortowany. ZADD dodaje z score, ZRANGE zwraca po rankingu.

Komendy:

ZADD leaderboard 1500 'user:1'

ZREVRANGE leaderboard 0 9 WITHSCORES

ZSCORE leaderboard 'user:1'

Zastosowanie:

Rankingi, leaderboardy, priority queues, rate limiting

5

Hash

Mapa key-value. Idealny do przechowywania obiektów. HSET ustawia pola, HGET pobiera.

Komendy:

HSET user:1 name 'Jan' email 'jan@ex.com'

HGET user:1 name

HGETALL user:1

Zastosowanie:

Profile użytkowników, obiekty, konfiguracja

6

Stream

Append-only log zdarzeń. Podobny do Kafka ale w pamięci. Consumer groups, auto-ID.

Komendy:

XADD events * type 'click' page '/home'

XREAD COUNT 10 STREAMS events 0

XGROUP CREATE events workers $

Zastosowanie:

Event sourcing, real-time analytics, message broker

Kluczowe zastosowania Redis

Session Store

Sub-millisecond

Przechowywanie sesji użytkowników z TTL. Automatyczne wygasanie (SETEX). Skalowalne między wieloma serwerami.

Database Cache

10-100x szybciej niż DB

Cache wyników zapytań SQL. Cache-Aside pattern. Zmniejszenie obciążenia bazy o 80-90%.

Rate Limiting

1M+ ops/sec

INCR + EXPIRE do liczenia żądań per użytkownik/IP. Algorytmy: Fixed Window, Sliding Window, Token Bucket.

Job Queue

Niskie opóźnienie

LPUSH do dodawania zadań, BRPOP do pobierania (blocking). Priorytety przez Sorted Sets.

Real-time Leaderboard

O(log N)

Sorted Sets (ZADD score, ZREVRANK) — aktualizacja i pobieranie rankingów w O(log N).

Pub/Sub Messaging

Bardzo niska latencja

PUBLISH do kanałów, SUBSCRIBE do subskrypcji. Real-time notifications, chat, live updates.

FAQ — Redis

Co to jest Redis?

Redis (Remote Dictionary Server) to open-source'owy, in-memory data structure store — baza danych, cache i message broker działający w pamięci RAM. Stworzony przez Salvatore Sanfilippo w 2009 roku. Redis przechowuje dane w RAM co zapewnia ekstremalnie niskie opóźnienia (poniżej 1ms) i wysoką przepustowość (ponad 1 milion operacji/sekundę). Wspiera persistence (RDB snapshots, AOF log) i replikację. Używany przez Twitter, GitHub, Pinterest, Snapchat, Stack Overflow.

Jakie struktury danych oferuje Redis?

Redis oferuje bogaty zestaw struktur danych: Strings (podstawowa, binarna, do 512MB), Lists (kolejki FIFO/LIFO, lpush/rpop), Sets (unikalne elementy, operacje zbiorów — union, intersection), Sorted Sets (ZSet — elementy z score, ranking), Hashes (mapy key-value, profil użytkownika), Bitmaps (operacje bitowe), HyperLogLog (szacowanie unikalnych elementów), Streams (log zdarzeń, podobny do Kafka), Pub/Sub (komunikacja asynchroniczna), Geospatial (lokalizacja, geofencing).

Redis jako cache — jak to działa?

Redis cache stosuje wzorzec Cache-Aside (Lazy Loading): aplikacja najpierw sprawdza cache (GET key), jeśli brak (cache miss) — pobiera z bazy, zapisuje do Redis (SET key value EX 3600), przy następnym żądaniu — cache hit, brak zapytania do bazy. Kluczowe parametry: TTL (Time to Live) — czas wygaśnięcia danych; eviction policy — co wyrzucić gdy RAM jest pełny (LRU — Least Recently Used jest domyślne). Redis jako cache może zmniejszyć obciążenie bazy danych o 80-90%.

Jak Redis obsługuje persistence (trwałość)?

Redis oferuje dwa mechanizmy trwałości: RDB (Redis Database) — snapshot stanu bazy w regularnych interwałach (np. co 5 minut). Szybkie odtwarzanie, ale ryzyko utraty danych z ostatnich minut. AOF (Append Only File) — loguje każdą operację zapisu. Bardziej niezawodne, większy plik, wolniejsze odtwarzanie. Można łączyć oba. Dla czystego cache persistence jest wyłączane (maxmemory + eviction policy). Redis 7.0 wprowadził RDB + AOF hybrid persistence.

Co to jest Redis Cluster i Redis Sentinel?

Redis Sentinel to system High Availability: monitoruje master i repliki, automatycznie failover gdy master pada (promuje replikę na master), powiadamia klientów o nowym masterze. Redis Cluster to horyzontalne skalowanie: automatycznie dzieli dane między wiele węzłów (sharding) przez hash slots (16384 slotów), każdy węzeł odpowiada za podzbiór slotów. Cluster umożliwia skalowanie poza limit RAM pojedynczego serwera. Managed Redis: AWS ElastiCache, Google Memorystore, Redis Cloud.

Kontakt

Skontaktuj się z nami

Porozmawiajmy o Twoim projekcie. Bezpłatna wycena w ciągu 24 godzin.

Wyślij zapytanie

Bezpłatna wycena w 24h
Bez zobowiązań
Indywidualne podejście
Ekspresowa realizacja

Telefon

+48 790 814 814

Pon-Pt: 9:00 - 18:00

Email

adam@fotz.pl

Odpowiadamy w ciągu 24h

Adres rejestrowy

Poznańska 117/11

62-023 Kamionki · obsługa zdalna

Godziny pracy

Pon - Pt9:00 - 18:00
Sob - NdzZamknięte

Wolisz porozmawiać?

Zadzwoń teraz i porozmawiaj z naszym specjalistą o Twoim projekcie.

Zadzwoń teraz