
Redis
Redis pozwala na przechowywanie danych w pamięci z szybkimi czasami dostępu. Wykorzystywany jest tam, gdzie kluczowy jest czas i prostota obsługi. W Redis przechowywujemy najczęściej proste struktury danych, choć w przeciwieństwie do rozwiązań typu DynamoDB od AWS, rozmiar danych jest znacznie większy bo wynosi 512mb. Redis jest rozwiązaniem typu open-source, a więc można wykorzystywać je bez przeszkody w swoim oprogramowaniu. Redis posiada API SDK dostępne w wielu językach programowania takich jak:
Wykorzystanie technologii w praktyce — Redis


Papierowa dokumentacja TSL zastąpiona aplikacją z e-podpisem
Klient: Green Transit
Branża: Logistyka / LogTech
- C++ ( Redis-plus-plus )
- Go ( GoRedis )
- Java ( Jedis )
- NodeJS ( IORedis )
- Perl ( Redis )
- Python ( Redis-py )
- R ( Rccp-redis )
- Ruby ( Redis-rb )
- Rust ( Redis-rs )
- Scala ( Scala-redis )
- Swift ( RediStack )
Redis jest wysoce skalowalny
Redis ze względu na swoją architekturę jest rozwiązaniem wysoce skalowalnym. Wykorzystywany najczęściej jako pierwsza linia frontu, tam gdzie musimy ominąć bezpośrednio bazę danych typu SQL czy nawet NoSQL i uzyskiwać najszybsze czasy odpowiedzi. W Redis wykorzystuje się partycjonowanie ze względu na łatwe wydzielenie danych i brak powiązania ich między sobą, a także replikację typu master-slave.
Kluczowe funkcje Redis
Redis to nie tylko szybka baza danych in-memory, ale również wszechstronne narzędzie do wielu zastosowań. Jego kluczowe funkcje obejmują:
- Przechowywanie klucz-wartość – Redis działa jako magazyn danych w strukturze klucz-wartość, obsługując różne typy danych, takie jak ciągi znaków, listy, zestawy, hashe i zbiory uporządkowane.
- Cache'owanie danych – Dzięki ekstremalnej szybkości odczytu i zapisu Redis jest idealnym rozwiązaniem do przechowywania często używanych danych, co zmniejsza obciążenie baz danych i poprawia wydajność aplikacji.
- Mechanizm pub/sub – Redis obsługuje system publikacji i subskrypcji, umożliwiając efektywną komunikację między procesami w czasie rzeczywistym.
- Obsługa transakcji i skryptów – Redis pozwala na wykonywanie transakcji z grupowaniem operacji oraz używanie skryptów Lua w celu zwiększenia wydajności.
- Replikacja i klastrowanie – Obsługa replikacji master-slave oraz klastrów Redis sprawia, że można łatwo skalować system i zapewnić wysoką dostępność danych.
- Mechanizm TTL (Time to Live) – Każdy klucz może mieć określony czas życia, co pozwala efektywnie zarządzać pamięcią i usuwać niepotrzebne dane automatycznie.

Redis jest wykorzystywany w wielu rodzajach aplikacji
Najczęstszym wykorzystaniem Redis jest cachowanie danych aplikacji. Weźmy na przykład aplikację webową, która wielokrotnie sięga po te same dane. Zamiast odpytywać bezpośrednio bazę danych, co nie jest najszybszym rozwiązaniem można odpytać cache, którym będzie w tym wypadku Redis. Pozwoli to zredukować czas odpowiedzi serwera, a także znacznie podniesie skalowalność aplikacji.
Innymi rozwiązaniami, gdzie wykorzystuje się Redis są:
- analityka danych
- chat (pub/sub)
- kolejka danych
- zarządzanie sesją danych użytkownika
Bezpieczeństwo w Redis
Istnieją różne sposoby, aby chronić dane w Redisie i zapewnić ich poufność, integralność i dostępność. Pierwszym krokiem jest zabezpieczenie samego Redis-a przed nieautoryzowanym dostępem, co można osiągnąć poprzez ustawienie silnego hasła administratora. Kolejnym krokiem jest zastosowanie mechanizmu uwierzytelniania dla klientów, którzy się z nim łączą, tak aby tylko uprawnieni użytkownicy mieli dostęp do bazy danych. Redis umożliwia również szyfrowanie danych za pomocą SSL/TLS, co jest szczególnie ważne, gdy jest używany w aplikacjach internetowych, gdzie wymieniane są poufne informacje. Warto również pamiętać o regularnym wykonywaniu kopii zapasowych danych i przechowywaniu ich w bezpiecznym miejscu, aby w przypadku awarii można było przywrócić bazę danych.
Minusy rozwiązania typu Redis
Minusem rozwiązania typu in-memory może być zbytnie poleganie na nim, i w przypadku utraty dostępności do serwera, przekierowanie ruchu na bazę danych może skończyć się brakiem dostępności do serwisu. Trzeba pamiętać o zapobieganiu tego typu sytuacjom poprzez utrzymywanie systemów restartujących dane rozwiązane, albo uruchamiających serwer zapasowy. Można też utrzymywać kopię danych Redis na dysku twardym i robić regularne zrzuty pamięci, co pozwoli uniknąć sytuacji utraty całego cache’u.
Powiązane artykuły
Szukasz zaufanego partnera technologicznego?
Skontaktuj się z nami — pomożemy Ci na każdym etapie wdrożenia oprogramowania w Twojej firmie.
Napisz do nas



