Długość klucza Redis Max i co się stanie, jeśli zostanie przekroczone

Długość klucza Redis Max i co się stanie, jeśli zostanie przekroczone
Redis to znany sklep w strukturze danych w pamięci. Przechowuje dane za pomocą wartości kluczowej

Ten przewodnik przyjrzy się kluczowej długości i jej wpływu na Redis.

Klucz Redis Długość

Klucze Redis są bezpieczne binarne. Oznacza to, że każda sekwencja binarna może służyć jako klucz. Może to być wszystko - ciąg, zawartość pliku JPEG i więcej. Pusty ciąg jest również prawidłowym kluczem.

Istnieje jednak limit maksymalnego rozmiaru klucza (512 MB). To samo dotyczy wielkości wartości (512 MB dowolnego typu danych).

Właściwa długość kluczowa zależy od kontekstu. Jednak w większości przypadków lepiej unikać zbyt długich lub krótkich kluczy.

Wady długich kluczy

Jeśli ustawiasz bardzo długi klucz, ma to koszty wydajności. Poszukiwanie klucza w bazie danych Redis może wymagać kilku kosztownych kluczowych porównań. W wydajności pamięci długie klucze są dość nieefektywne.

Jeśli musisz używać długich klawiszy, rozważ mieszanie ich dobrymi algorytmami, takimi jak SHA1, SHA256 itp. W zamian za nieco większą moc przetwarzania obciążenie pamięci jest znacznie zmniejszone, nie wspominając o podniesieniu wydajności.

Na przykład klucz 1024 bajtów spowoduje mniejszą wydajność i wyższe zużycie pamięci. Jeśli jest on skręcony za pomocą SHA256, rozmiar jest zmniejszony do 256 bitów (32 bajtów), zachowując unikalną pozycję na serwerze Redis.

Wady krótkich kluczy

Druga strona widma jest używa zwięzłych kluczy. Z poprzedniego przykładu długość kluczowania jest lepsza dla korzyści wydajnościowych i wydajności zasobów. Jednak poświęcenie jasności dla niewielkiej wzrostu wydajności często nie jest tego warte.

Rozbijmy to przykładem. Rozważ klucz U5000F jako skrócona forma Użytkownik: 5000: obserwujący. Chwila U5000F jest lepszą opcją pod względem wydajności, stanowi straszną opcję, gdy jest wdrażana w kodzie.

Na początek kluczowa nazwa jest dość nieintuicyjna. Nie ma również wyraźnego wskazania, jaki jest jego cel. To idealne ziarno na katastrofę na linii. Gdy baza kodu staje się coraz większa, mylące kody stają się trudniejsze do utrzymania. Zamiast tego używając Użytkownik: 5000: obserwujący oferuje doskonałą równowagę między wydajnością a wygodą.

Co się stanie, jeśli Redis zabraknie pamięci

Redis może obsłużyć dużą liczbę kluczy. Jest zaprojektowany do obsługi do 2^32 kluczy! Według FAQ Redis oprogramowanie jest przetestowane w stresie z 250 milionami kluczy. Innymi słowy, bardziej prawdopodobne jest, że zabraknie Ci pamięci systemowej przed osiągnięciem limitu Redis.

Jednak to, co się stanie, gdy Redis osiągnie maksymalną pojemność pamięci? Redis jest wyposażony w wbudowane zabezpieczenia, takie jak ograniczenie maksymalnego wykorzystania pamięci za pomocą dyrektywy MaxMemory w pliku konfiguracyjnym Redis.

$ sudo nano/etc/redis/redis.conf

Jeśli Redis osiągnie limit pamięci, zwraca błąd do nowych poleceń zapisu. Jednak nadal będzie reagować na czytanie poleceń.

Wniosek

W tym przewodniku omówiliśmy maksymalną długość Klucza Redis. Omówiliśmy również zasady zarządzania, gdy Redis przekracza przypisany limit pamięci. Dzięki tej wiedzy możesz zdecydować, jak wdrożyć Redis w swoich aplikacjach i skryptach.

Mówiąc o skryptach, dowiedz się więcej o włączeniu Redis z Lua, Golang, Ruby itp. Musisz dostosować zachowanie Redis? Dowiedz się więcej o pliku konfiguracyjnym Redis.