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…
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ą.
Zastosować możesz go wszędzie, ale nie wszędzie się to opłaca. Takie typowe przypadki użycia to:
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, czyli broker, to mechanizm, który transportuje komunikaty np. do kolejek. I tak na przykład Celery pozwala na użycie Redisa jako brokera.
Jako rozwiązanie alternatywne dla np. plików.
…bo nikt nie będzie sprawdzać, czy zamykasz się w utartych ramach :)
Redis jest narzędziem prostym, ale nie prostackim, pozwala zrobić naprawdę dużo fajnych rzeczy, czym trochę przypomina mi Pythona.
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:
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.
Strasznie wygodny mechanizm wymiany komunikatów. A co ważne – wydajny. Zostawiam link do artykułu, gdzie jest to bardzo fajnie opisane.
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.
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.
…a części z nich pewnie i ja nie znam :)
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!
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
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
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
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
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
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
Pokaż komentarze
Pierwszy raz słyszę o Redis :) po Twoim wpisie muszę nadrobić wiedzę.
Cieszę się, że zaciekawiłem:)
Redis i Python to po prostu idealne połączenie! Dzięki temu zrozumiałem, jak efektywnie je integrować.
Dzięki!
Przydatne informacje na temat Redis i Python, teraz czuję się pewniej korzystając z tej kombinacji. Dzięki za jasne wyjaśnienia!