2015-05-16 13 views
32

Zastanawiam się, jakie znaki są uważane za poprawne w kluczu Redis. Mam google przez jakiś czas i nie mogę znaleźć żadnych przydatnych informacji.Konwencja nazewnictwa i ważne znaki dla klucza Redis

Podobnie jak w Pythonie, poprawna nazwa zmiennej powinna należeć do klasy [a-zA-Z0-9_]. Jakie są wymagania i konwencje dotyczące kluczy Redis?

Odpowiedz

57

Część tego jest odpowiedzią here, ale nie jest to całkowicie duplikat, ponieważ pytasz o dozwolone postacie i konwencje.

chodzi o ważnych postaci w Redis kluczy, the manual explains this completely:

Redis klucze są bezpieczne binarnej, oznacza to, że można użyć dowolną sekwencję binarną jako klucz, z ciągiem jak „foo” do zawartość pliku JPEG. Pusty ciąg jest również prawidłowym kluczem.

Kilka inne zasady dotyczące klawiszy:

Bardzo długie klucze nie są dobrym pomysłem, na przykład klucz 1024 bajtów jest to zły pomysł, nie tylko pamięć, mądry, ale także dlatego, że wyszukiwanie klucza w zestaw danych może wymagać kilku kosztownych porównań kluczy. Nawet jeśli zadaniem jest dopasowanie do istnienia dużej wartości, uciekanie się do hashu (na przykład z SHA1) jest lepszym pomysłem, zwłaszcza z punktu widzenia pamięci i przepustowości.

Bardzo krótkie klawisze często nie są dobrym pomysłem. Pisanie "u1000flw" jako klucza nie ma sensu, jeśli można zamiast tego napisać "user: 1000: followers". Ta ostatnia jest bardziej czytelna, a dodatkowa przestrzeń jest niewielka w porównaniu do przestrzeni używanej przez sam obiekt klucza i obiekt wartości. Podczas gdy krótkie klawisze będą oczywiście zużywać nieco mniej pamięci, Twoim zadaniem będzie znalezienie właściwej równowagi.

Spróbuj trzymać się schematu. Na przykład "object-type: id" jest dobrym pomysłem, jak w "user: 1000". Kropki lub łączniki są często używane w polach zawierających wiele słów, tak jak w "komentarz: 1234: odpowiedź.to" lub "komentarz: 1234: odpowiedź" na ".

Maksymalny dozwolony rozmiar klucza to 512 MB.

+3

Tego właśnie chcę. – andy

+0

Czy możemy mieć tutaj miejsce w kluczowym nazwisku? – Vipul

+1

@Vipul: tak, "oznacza to, że możesz użyć dowolnej sekwencji binarnej jako klucza," ale w wierszu poleceń będziesz musiał umieścić cudzysłowy wokół tego klawisza, w przeciwnym razie 'SET some key my value' nie zadziała, podczas gdy' SET "jakiś klucz" "moja wartość". –