Redis i Python – dobrze dobrana para #1

Cześć!

Na przestrzeni ostatnich lat sporo się zmieniało w moim życiu. Zmiany te sprawiły, że zacząłem stosować podejście, w którym co jakiś czas przyglądam się temu jak żyję, co osiągnąłem, z czego zrezygnowałem i tak dalej. Cel jest prosty: sprawdzić, czy droga którą idę jest nadal tą, którą chcę iść. I ewentualnie skorygować.

Niedawno miałem okazję do takiego przeglądu. Doprowadziło mnie to do wielu wartościowych przemyśleń. Oczywiście jednym z analizowanych aspektów był ten blog. Było co przeglądać, bo jest tutaj ponad 200 wpisów! Blog ma 11 lat. Nie wszystkie wpisy są techniczne. Oczywiście nie wszystkie z tych technicznych trzymają wysoki poziom, bo 11 lat temu umiałem mniej niż teraz… Mógłbym się rozpisać. Ale do brzegu.

Przeglądałem te wpisy i doszło do mnie, że nigdzie nie ma wpisu poświęconego Redisowi. Jest to ogromne niedopatrzenie z mojej strony, bo uważam, że sam Redis jak i jego connectory, które są dostępne w Pythonie, to bardzo wygodne rozwiązania.

Ale od początku…

Czym jest Redis?

Nazwa Redis pochodzi od „Remote Dictionary Server”. A samo rozwiązanie to po prostu baza danych. Dokładniej baza typu NoSQL, przechowująca dane w formacie „klucz-wartość”.

Historia tego typu baz danych jest dość zabawna. Najpierw były postrzegane jako ciekawostka, by wraz z biegiem czasu, zacząć pojawiać się prawie wszędzie. Nawet tam, gdzie kompletnie nie pasują.

Zastosowania Redisa

Zastosować możesz go wszędzie, ale nie wszędzie się to opłaca. Takie typowe przypadki użycia to:

Cache

Redis jest szybki i można go skonfigurować tak, by trzymał wszystkie dane w pamięci, co powoduje, że staje się demonem szybkości, a co za tym idzie – dobrym wyborem jeśli chodzi o mechanizm cache’ujący.

Pośrednik komunikatów

Pośrednik komunikatów, czyli broker, to mechanizm, który transportuje komunikaty np. do kolejek. I tak na przykład Celery pozwala na użycie Redisa jako brokera.

Sesje użytkowników

Jako rozwiązanie alternatywne dla np. plików.

I wszystko co przyjdzie Ci do głowy…

…bo nikt nie będzie sprawdzać, czy zamykasz się w utartych ramach :)

Możliwości Redisa

Redis jest narzędziem prostym, ale nie prostackim, pozwala zrobić naprawdę dużo fajnych rzeczy, czym trochę przypomina mi Pythona.

Redis Sentinel

High availability, czyli wysoka dostępność, jest dostarczana wraz z narzędziem o nazwie Redis Sentinel. Poza oczywistym wymaganiem, żeby narzędzie radziło sobie z awariami, dostajemy kilka innych bonusów:

  • Monitoring – sprawdzanie stanu poszczególnych instancji.
  • Powiadomienia – Sentinel może powiadomić zdefiniowaną osobę o tym, że stało się coś złego.
  • Konfiguracja – Sentinel może stanowić jedno źródło prawdziwej i oczekiwanej konfiguracji dla reszty instancji Redisa.

Transakcje

Redis dostarcza mechanizm transakcji. Gwarantuje on atomowość zdefiniowanego zestawu komend. Praca z transakcjami jest oparta o cztery komendy: MULTI, EXEC, DISCARD i WATCH – takie trochę odpowiedniki ROLLBACK, COMMIT, BEGIN itp.


Czekaj, stop!

Podoba Ci się to co tworzę? Jeśli tak to zapraszam Cię do zapisania się na newsletter:

Aby potwierdzić swoją subskrypcję, odbierz pocztę i kliknij w link potwierdzający:) jeśli maila nie ma to poczekaj chwile i/lub sprawdź folder spam/inne/oferty itp :)

Aby potwierdzić swoją subskrypcję, odbierz pocztę i kliknij w link potwierdzający:) jeśli maila nie ma to poczekaj chwile i/lub sprawdź folder spam/inne/oferty itp :)
a w ramach prezentu otrzymasz całkowicie za darmo, dwa dokumenty PDF „6 (nie zawsze oczywistych) błędów popełnianych podczas nauki programowania” który jest jednym z efektów ponad siedmioletniej pracy i obserwacji rozwoju niejednego programisty oraz „Wstęp do testowania w Pythonie”, będący wprowadzeniem do biblioteki PyTest.
Jeśli to Cię interesuje to zapraszam również na swoje social media.

Jak i do ewentualnego postawienia mi kawy :)

Mechanizm PUB/SUB

Strasznie wygodny mechanizm wymiany komunikatów. A co ważne – wydajny. Zostawiam link do artykułu, gdzie jest to bardzo fajnie opisane.

Skrypty w LUA

Redis pozwala pisać skrypty w języku LUA (którego miałem okazję, w wyniku trochę pokrętnych historii, poznać jeszcze przed Redisem). Porównałbym to np. do procedur w SQLu.

Dodatkowe moduły

Tutaj to już jest przepiękna magia! Można doinstalować dodatkowe moduły do Redisa i wykorzystać go do wyszukiwania pełnotekstowego, dodawać nowe typy danych, czy nawet zastosować go do AI/ML! Lista dostępna jest tutaj – link.

I wiele innych…

…a części z nich pewnie i ja nie znam :)

Co dalej?

Wstęp teoretyczny mamy za sobą. Ten wpis jest pierwszym z właśnie rozpoczętej serii artykułów o pracy z Redisem w Pythonie. Kolejne pojawią się pewnie jakoś niedługo, jeszcze nie zdecydowałem ile ich będzie, ale postaram się pokazać coś fajnego!

Dzięki za wizytę,
Mateusz Mazurek
Mateusz M.

Pokaż komentarze

  • Pierwszy raz słyszę o Redis :) po Twoim wpisie muszę nadrobić wiedzę.

  • Redis i Python to po prostu idealne połączenie! Dzięki temu zrozumiałem, jak efektywnie je integrować.

  • Przydatne informacje na temat Redis i Python, teraz czuję się pewniej korzystając z tej kombinacji. Dzięki za jasne wyjaśnienia!

Ostatnie wpisy

Podsumowanie: maj, czerwiec, lipiec i sierpień 2024

Oj daaawnoo mnie tu nie było. Ale wakacje to był czas dużej liczby intensywnych wyjazdów i tak naprawdę, dopiero jakoś… Read More

2 miesiące ago

Podsumowanie: kwiecień 2024

Cześć! Zapraszam na krótkie podsumowanie kwietnia. Wyjazd do Niemiec A dokładniej pod granicę z Francją. Chrześnica miała pierwszą komunię. Po… Read More

6 miesięcy ago

Podsumowanie: luty i marzec 2024

Ostatnio tygodnie były tak bardzo wypełnione, że nie udało mi się napisać nawet krótkiego podsumowanie. Więc dziś zbiorczo podsumuję luty… Read More

7 miesięcy ago

Podsumowanie: styczeń 2024

Zapraszam na krótkie podsumowanie miesiąca. Książki W styczniu przeczytałem "Homo Deus: Historia jutra". Książka łudząco podoba do wcześniejszej książki tego… Read More

9 miesięcy ago

Podsumowanie roku 2023

Cześć! Zapraszam na podsumowanie roku 2023. Książki Zacznijmy od książek. W tym roku cel 35 książek nie został osiągnięty. Niemniej… Read More

10 miesięcy ago

Podsumowanie: grudzień 2023

Zapraszam na krótkie podsumowanie miesiąca. Książki W grudniu skończyłem czytać Mein Kampf. Nudna książka. Ciekawsze fragmenty można by było streścić… Read More

11 miesięcy ago