Redis (od Remote Dictionary Server) to baza danych typu klucz-wartość, która trzyma wszystkie dane w pamięci RAM, a nie na dysku. Dzięki temu odpowiada na zapytania w czasie liczonym w mikrosekundach i potrafi obsłużyć setki tysięcy operacji na sekundę. Najczęściej spotkasz ją w roli pamięci podręcznej (cache), magazynu sesji użytkowników i prostej kolejki komunikatów. Stworzył ją Salvatore Sanfilippo (znany jako antirez) w 2009 roku.
Jak to działa i do czego służy
Model klucz-wartość oznacza, że każda dana ma swój unikalny klucz (np. user:42:session) i przypisaną wartość. Ale Redis to nie tylko zwykły słownik — obsługuje całe struktury danych: stringi, listy, zbiory, posortowane zbiory (sorted set), hashe, a nawet typy probabilistyczne. To dlatego nadaje się do tak różnych zadań: licznik wyświetleń, ranking graczy, kolejka zadań w tle czy ograniczanie liczby zapytań (rate limiting).
Trzymanie danych w RAM to źródło prędkości, ale i pułapka — pamięć jest ulotna. Redis radzi sobie z tym przez dwa mechanizmy trwałości: RDB (migawki stanu co jakiś czas) i AOF (zapis każdej operacji do logu). Większość operacji wykonuje jednowątkowo, więc nie musisz martwić się o blokady — komendy lecą jedna po drugiej.
Przykład z praktyki
Klasyk: cache wyniku ciężkiego zapytania do bazy SQL. Zamiast za każdym razem męczyć PostgreSQL, sprawdzasz najpierw Redis. Z poziomu redis-cli wygląda to tak:
SET produkt:99 "{...json...}" EX 300— zapisuje wartość i ustawia jej wygaśnięcie po 300 sekundach.GET produkt:99— odczytuje. Jeśli zwrócinil, dane wygasły i lecisz po nie do bazy.
Ten parametr EX (czas życia klucza, TTL) to serce cache’owania — dane same znikają, gdy się zdezaktualizują.
Częste błędy i mity
„Redis to tylko cache” — nieprawda, z włączoną trwałością bywa głównym magazynem danych. „Skoro w RAM, to dane przepadną” — nie, jeśli skonfigurujesz RDB/AOF. Realne pułapki: brak ustawionego maxmemory i polityki eksmisji (baza puchnie aż serwer padnie), oraz wystawienie Redisa na publiczny adres bez hasła — domyślny port 6379 to ulubiony cel skanerów.
Warto wiedzieć o licencji: po zamieszaniu w 2024 roku, od maja 2025 i wersji Redis 8 projekt wrócił do otwartego oprogramowania pod licencją AGPLv3 (obok opcji RSALv2 i SSPLv1).
Pojęcia powiązane
Memcached (prostszy konkurent do cache), Valkey (otwarty fork Redisa), baza klucz-wartość, NoSQL, pamięć podręczna, TTL, pub/sub, Redis Cluster.