Definicja #
Redis (Remote Dictionary Server) to open-source'owy magazyn danych działający w pamięci RAM, stworzony przez Salvatore Sanfilippo w 2009 roku. Mimo że należy do kategorii baz klucz-wartość (key-value store), obsługuje wiele złożonych struktur danych.
Typy danych w Redis:
- String — tekst, liczby, dane binarne (do 512 MB)
- Hash — mapa pola-wartość, idealna dla obiektów
- List — lista stringów (kolejki, stosy)
- Set — zbiór unikalnych wartości
- Sorted Set (ZSet) — zbiór z wynikiem (score), np. rankingi
- Stream — log zdarzeń append-only (od Redis 5.0)
- HyperLogLog — przybliżona liczba unikalnych elementów
Redis oferuje replikację master-replica, Sentinel (wysoka dostępność), Cluster (sharding) oraz opcjonalną persystencję (RDB snapshots, AOF log). Zarządzana wersja chmurowa to Redis Cloud oraz usługi na Azure (Azure Cache for Redis), AWS (ElastiCache) i GCP.
Zastosowania #
Redis jest stosowany do:
- Cachowanie — przechowywanie wyników kosztownych zapytań SQL lub wywołań API z TTL
- Sesje użytkowników — szybki dostęp do danych sesji w aplikacjach webowych
- Rate limiting — liczniki z TTL do ograniczania liczby żądań
- Broker komunikatów i kolejki zadań — Pub/Sub, kolejki z użyciem List lub Streams
- Rankingi i tablice liderów — Sorted Sets z automatycznym sortowaniem po score
Ścieżka nauki #
Przed nauką Redis warto znać podstawy sieci, aplikacji webowych i rozumieć czym jest cache.
Zacznij od:
- Podstawowe polecenia:
SET,GET,DEL,EXPIRE,TTL,EXISTS - Typy danych: String, Hash, List, Set, Sorted Set i kiedy je stosować
- Połączenie z Redis z wybranego języka: Node.js (ioredis), Python (redis-py), C# (StackExchange.Redis)
Następnie poznaj:
- Wzorce cachowania: cache-aside, write-through, write-behind
- Pub/Sub i Streams do komunikacji między serwisami
- Persystencja: RDB vs AOF — kiedy i czy w ogóle włączać
- Redis Cluster i Sentinel — wysoka dostępność i sharding
FAQ #
- Czy Redis to baza danych czy cache?
- Redis jest zarówno jednym, jak i drugim — zależy od konfiguracji i użycia. Może działać jako szybki cache (dane w RAM z TTL bez persystencji) lub jako trwała baza danych (z persystencją RDB/AOF). W praktyce najczęściej pełni rolę cache lub brokera komunikatów.
- Czym różni się Redis od Memcached?
- Redis obsługuje bogatsze struktury danych (Hash, List, Set, Sorted Set, Stream), replikację, persystencję i skrypty Lua. Memcached to prostszy cache in-memory bez tych funkcji, ale z nieco lepszą wydajnością dla prostego cachowania stringów.
- Czy Redis jest open source?
- Redis do wersji 7.2 był udostępniany na licencji BSD. Od wersji 7.4 (2024) licencja zmieniła się na SSPL/RSALv2, co wywołało kontrowersje. Powstał fork Valkey (Linux Foundation) kontynuujący tradycję open source.
- Ile zarabia backend developer znający Redis?
- Redis jest standardowym składnikiem stacku technologicznego backendowców. Senior backend developer z Redis zarabia w Polsce od 14 000 do 24 000 zł brutto — znajomość Redis jest jednym z wielu wymagań na takim stanowisku.