Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Najczęstsze przypadki użycia Redis według typów podstawowych struktur danych

Redis, skrót od Remote Dictionary Server, jest licencjonowanym przez BSD, otwartym magazynem struktury danych klucza i wartości w pamięci, napisanym w języku C przez Salvatore Sanfillipo i wydanym po raz pierwszy 10 maja 2009 r. W zależności od konfiguracji , Redis może działać jak baza danych, pamięć podręczna lub broker komunikatów. Należy zauważyć, że Redis jest systemem baz danych NoSQL. Oznacza to, że w przeciwieństwie do systemów baz danych opartych na SQL (Structured Query Language), takich jak MySQL, PostgreSQL i Oracle, Redis nie przechowuje danych w dobrze zdefiniowanych schematach baz danych, które stanowią tabele, wiersze i kolumny. Zamiast tego Redis przechowuje dane w strukturach danych, co czyni go bardzo elastycznym w użyciu. Hosting ScaleGrid dla Redis™* pozwala zautomatyzować czasochłonne operacje dla wielu różnych przypadków użycia Redis. W tym blogu przedstawiamy najważniejsze przypadki użycia Redis według różnych podstawowych typów struktur danych.

Struktury danych w Redis

Przyjrzyjmy się niektórym typom danych obsługiwanych przez Redis. W Redis mamy ciągi, listy, zestawy, posortowane zestawy i skróty, które omówimy w tym artykule. Dodatkowo mamy inne typy danych, takie jak bitmapy, hiperloglogi i indeksy geoprzestrzenne z zapytaniami o promienie i strumieniami. Chociaż istnieje kilka narzędzi Redis GUI napisanych przez społeczność Redis, wiersz poleceń jest zdecydowanie najważniejszym klientem, w przeciwieństwie do popularnych użytkowników baz danych SQL, którzy często preferują systemy zarządzania GUI, na przykład phpMyAdmin dla MySQL i PgAdmin dla PostgreSQL.

Przyjrzyjmy się bliżej typom danych istniejącym w Redis.

ciągi Redis

Łańcuchy Redis są najbardziej podstawowym typem wartości Redis wykorzystywanym przez wszystkie inne typy struktur danych i są dość podobne do napisów w innych językach programowania, takich jak Java czy Python. Ciągi, które mogą zawierać dowolny typ danych, są uważane za bezpieczne w formacie binarnym i mają maksymalną długość 512 MB. Oto kilka przydatnych poleceń dla ciągów Redis:

Aby zapisać ciąg „jan ” pod kluczem, takim jak „student” w Redis uruchom polecenie:

SET „student” „john”

Aby pobrać ciąg, użyj polecenia GET, jak pokazano:

GET „student”

Aby usunąć ciąg zawarty w kluczu użyj polecenia DEL:

DEL „student”

Przypadki użycia ciągów Redis

  1. Pamięć podręczna sesji: Wiele witryn wykorzystuje ciągi Redis do tworzenia pamięci podręcznej sesji, aby przyspieszyć działanie witryny poprzez buforowanie fragmentów lub stron HTML. Ponieważ dane są tymczasowo przechowywane w pamięci RAM, atrybut ten sprawia, że ​​Redis jest idealnym wyborem jako pamięć podręczna sesji. Jest w stanie tymczasowo przechowywać dane specyficzne dla użytkownika, na przykład elementy przechowywane w koszyku w sklepie internetowym, co ma kluczowe znaczenie, ponieważ użytkownicy nie tracą swoich danych w przypadku wylogowania lub utraty połączenia.
  2. Kolejki: Każda aplikacja, która zajmuje się zagęszczeniem ruchu, przesyłaniem wiadomości, gromadzeniem danych, zarządzaniem zadaniami lub routingiem pakerów, powinna rozważyć kolejkę Redis, ponieważ może to pomóc w zarządzaniu rozmiarem kolejki według szybkości przybycia i odjazdu w celu dystrybucji zasobów.
  3. Rozliczenia za użytkowanie i taryfy: Mniej znanym przypadkiem użycia ciągów Redis jest pomiar w czasie rzeczywistym dla modeli cen opartych na zużyciu. Dzięki temu platformy SaaS, które rozliczają się na podstawie rzeczywistego wykorzystania, mogą mierzyć aktywność swoich klientów, na przykład w branży telekomunikacyjnej, gdzie mogą pobierać opłaty za wiadomości tekstowe lub minuty.

Listy Redis

Listy zawierają ciągi posortowane według kolejności wstawiania. Dzięki listom Redis możesz dodawać elementy na początku lub na końcu list, co jest bardzo przydatne w przypadku kolejkowania zadań. Jeśli istnieje więcej pilnych zadań, które wymagają wykonania, można je przesunąć przed innymi zadaniami o niższym priorytecie w kolejce. Użylibyśmy polecenia LPUSH, aby wstawić element na początku lub po lewej stronie ciągu, oraz polecenia RPUSH, aby wstawić na końcu lub po prawej stronie naszego ciągu. Spójrzmy na przykład:

Lista LPUSH x   # teraz lista to „x”

Lista LPUSH y   # teraz lista to "y","x"

RPUSH lista z   # teraz lista to "y","x","z" (zwróć uwagę, jak element „z” został dodany na końcu listy za pomocą polecenia RPUSH)

Lista przypadków użycia Redis

  1. Witryny sieci społecznościowych: Platformy społecznościowe, takie jak Twitter, używają list Redis do wypełniania swoich osi czasu lub kanałów na stronie głównej i mogą dostosowywać górną część swoich kanałów za pomocą popularnych tweetów lub historii.
  2. Kanały RSS: Twórz kanały informacyjne z niestandardowych źródeł, z których możesz pobierać najnowsze aktualizacje i zezwalać zainteresowanym obserwatorom na subskrybowanie Twojego kanału RSS.
  3. Tabele wyników: Fora, takie jak Reddit i inne platformy do głosowania, wykorzystują listy Redis, aby dodawać artykuły do ​​tabeli wyników i sortować według większości głosowanych wpisów.

Dowiedz się, jak zbudować własny kanał na Twitterze w naszych tweetach buforowania za pomocą wpisów na blogu Node.js, Redis i Socket.io.

Najczęstsze przypadki użycia #Redis według podstawowych typów struktury danychKliknij, aby tweetować

Zestawy Redis

Zestawy Redis to potężne typy danych, które obsługują zaawansowane operacje, takie jak skrzyżowania i połączenia. Nie są one w dowolnej kolejności i są zwykle używane, gdy chcesz przeprowadzić audyt i zobaczyć relacje między różnymi zmiennymi. Zestawy są dość szybkie i niezależnie od liczby przechowywanych elementów, dodanie lub usunięcie elementów w zestawie zajmie tyle samo czasu. Co więcej, zestawy nie pozwalają na duplikowanie kluczy ani zduplikowanych członków, więc klucz dodany wielokrotnie w zestawie zostanie po prostu zignorowany. Jest to napędzane przez funkcję o nazwie SADD, która pozwala uniknąć powielania wielu podobnych wpisów. Atrybut SADD może być używany podczas sprawdzania unikalnych wartości, a także do planowania zadań działających w tle, w tym zadań cron, które są zautomatyzowanymi skryptami.

Są one szczególnie przydatne do analizy zachowań klientów w czasie rzeczywistym w Twojej witrynie zakupów online. Na przykład, jeśli prowadzisz internetowy sklep odzieżowy, Redis Sorted Sets wykorzystują techniki dopasowywania relacji, takie jak sumy, przecięcia i odejmowania (powszechnie stosowane w diagramach Venna), aby dać dokładny obraz zachowania klientów. Możesz pobrać dane o wzorcach zakupowych między płciami, które produkty odzieżowe sprzedają się najlepiej i które godziny odnotowują największą sprzedaż.

Przypadki użycia zestawów Redis

  1. Analiza sprzedaży e-commerce: Wiele sklepów internetowych korzysta z zestawów Redis do analizowania zachowań klientów, takich jak wyszukiwania lub zakupy dla określonej kategorii lub podkategorii produktów. Na przykład właściciel księgarni internetowej może dowiedzieć się, ilu klientów kupiło książki medyczne w psychologii.
  2. Śledzenie adresów IP: Zestawy Redis to świetne narzędzie dla programistów, którzy chcą analizować wszystkie adresy IP, które odwiedziły określoną stronę internetową lub post na blogu, i być w stanie zignorować wszystkie duplikaty dla unikalnych użytkowników dzięki ich funkcji SADD.
  3. Nieodpowiednie filtrowanie treści: W przypadku każdej aplikacji, która zbiera dane wejściowe użytkownika, dobrym pomysłem jest zaimplementowanie filtrowania treści pod kątem nieodpowiednich słów. Możesz to zrobić za pomocą zestawów Redis, dodając słowa, które chcesz filtrować, do klawisza SET i polecenia SADD.

Posortowane zestawy

Jak sugeruje nazwa, posortowane zestawy Redis to zbiór ciągów, które przypisują kolejność Twoim elementom i są jedną z najbardziej zaawansowanych struktur danych w Redis. Są one podobne do zestawów Redis, tyle że zestawy nie mają kolejności, podczas gdy zestawy posortowane kojarzą każdego członka z punktacją. Posortowane zestawy są znane z tego, że są bardzo szybkie, ponieważ możesz zwrócić uporządkowane listy i uzyskać dostęp do elementów w najkrótszym możliwym czasie.

Przypadki użycia posortowanych zestawów Redis

  1. Platformy pytań i odpowiedzi: Wiele platform z pytaniami i odpowiedziami, takich jak Stack Overflow i Quora, używa posortowanych zestawów Redis, aby uszeregować najwyżej głosowane odpowiedzi na każde zaproponowane pytanie, aby zapewnić najwyższą jakość treści na górze strony.
  2. Tablica wyników aplikacji do gier: Aplikacje do gier online wykorzystują posortowane zestawy Redis, aby utrzymać swoje listy najlepszych wyników, ponieważ wyniki mogą się powtarzać, ale ciągi zawierające unikalne dane użytkownika nie.
  3. Usługa planowania zadań: Posortowane zestawy Redis są doskonałym narzędziem dla usługi planowania zadań, ponieważ możesz powiązać wynik, aby uszeregować priorytet zadania w kolejce. W przypadku każdego zadania, które nie ma zapisanego wyniku, możesz użyć opcji WAGI do wartości domyślnej 1.
  4. Hashowanie geograficzne: Interfejs API indeksowania geograficznego Redis używa sortowanego zestawu dla techniki Geo Hash, która umożliwia indeksowanie lokalizacji na podstawie szerokości i długości geograficznej, zamieniając dane wielowymiarowe w dane liniowe.

Hasze Redis

Hasze Redis to odwzorowania między polami łańcuchowymi a wartościami łańcuchowymi. Jest to typ danych, do którego należy przejść, jeśli chcesz zasadniczo utworzyć kontener unikalnych pól i ich wartości do reprezentowania obiektów. Hasze pozwalają na przechowywanie przyzwoitej ilości pól, do 232 – 1 par pole-wartość (ponad 4 miliardy), zajmując bardzo mało miejsca. Powinieneś używać skrótów Redis, gdy tylko jest to możliwe, ponieważ możesz użyć małej instancji Redis do przechowywania milionów obiektów. Oprócz wielu zaawansowanych operacji możesz używać podstawowych operacji skrótu, takich jak pobieranie, ustawianie, istnieje.

Przypadki użycia skrótów Redis

  1. Profile użytkowników: Wiele aplikacji internetowych używa skrótów Redis dla swoich profili użytkowników, ponieważ mogą używać jednego skrótu dla wszystkich pól użytkownika, takich jak imię, nazwisko, adres e-mail, hasło itp.
  2. Wpisy użytkownika: Platformy społecznościowe, takie jak Instagram, wykorzystują skróty Redis do mapowania wszystkich zarchiwizowanych zdjęć lub postów użytkowników z powrotem do jednego użytkownika. Mechanizm mieszający pozwala im bardzo szybko wyszukiwać i zwracać wartości, dopasowywać dane do pamięci i wykorzystywać trwałość danych w przypadku śmierci jednego z ich serwerów.
  3. Przechowywanie danych dotyczących wielu dzierżawców: Aplikacje obsługujące wielu dzierżawców mogą wykorzystywać skróty Redis do rejestrowania i przechowywania metryk produktów i sprzedaży w sposób gwarantujący solidną separację między poszczególnymi dzierżawcami, ponieważ skróty mogą być efektywnie kodowane w bardzo małej przestrzeni pamięci.

Kto używa Redisa?

Redis znalazł ogromny udział w rynku w branży turystycznej i hotelarskiej, forach społecznościowych, mediach społecznościowych, SaaS i branży e-commerce, by wymienić tylko kilka. Niektóre z wiodących firm korzystających z Redis to Pinterest, Uber, Slack, Airbnb, Twitter i Stack Overflow. Oto kilka statystyk dotyczących dzisiejszej popularności Redis:

  • 4107 firm zgłosiło używanie Redis na StackShare
  • 8759 programistów stwierdziło, że używa Redis na StackShare
  • 38 094 użytkowników GitHub oznaczyło Redis gwiazdką
  • #8 w rankingu bazy danych na temat silników DB z wynikiem 144,08


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Konfigurowanie serwera proxy Apache Reverse do hostowania serwera Laravel Echo w środowisku produkcyjnym

  2. jak skonfigurować różne ttl dla każdej pamięci podręcznej redis przy użyciu @cacheable w springboot2.0

  3. Czy seler celerybeat może korzystać z harmonogramu bazy danych bez Django?

  4. Redis Vs RabbitMQ jako broker danych/system przesyłania wiadomości pomiędzy Logstash a elasticsearch

  5. Najlepsza biblioteka Redis dla Javy