2015-09-09 16 views

Odpowiedz

13

Klucze są oznaczone jako polecenia, których nie należy uruchamiać w produkcji ze względu na sposób ich działania. To, czego potrzebujesz, to stworzyć indeks swoich kluczy. Użyj set do przechowywania nazw klawiszy pożądanego wzoru. Po dodaniu nowego klucza my dodajemy jego nazwę do zestawu. Na przykład:

Set abc:parent1:child1 breakfast 
Sadd abc:parent1:index abc:parent1 

Wtedy kiedy trzeba listę:

Smembers abc:parent1 

daje listę, bez kar i problemów związanych z użyciem polecenia „zło” Keys. Dodatkowo usuniesz wpis z sremove po usunięciu klucza. Otrzymujesz również jako korzyść możliwość sprawdzenia, ile kluczy znajduje się w indeksie za pomocą jednego połączenia.

Jeśli absolutnie, pozytywnie, MUSISZ unikać używania indeksu zamiast klawiszy za pomocą SCAN.Jedyny moment, w którym powinieneś rozważyć klucze, to jeśli korzystasz z narzędzia do debugowania, w którym jedynym procesem używającym go jest proces debugowania.

+0

Nie do końca rozumiem, jak to działa. W twoim przykładzie powinno to być w rzeczywistości: 'set abc: parent1: child1 breakfast', a następnie' sadd abc: parent1 child1'? – Automatico

+0

Nie, ponieważ OP chciał tylko poziom parent1, a nie child. –

+0

Źle zrozumiałem pytanie, dzięki za wyjaśnienie. – Automatico

3

poleceń KEYS wzór pomogą ci za to samo.

ex:

redis> MSET one 1 two 2 three 3 four 4 
OK 
redis> KEYS *o* 
1) "two" 
2) "one" 
3) "four" 

dla konkretnego przykładu, polecenie poniżej będzie działać:

redis 127.0.0.1:6379> keys *parent[0-9] 
1) "abc:parent2" 
2) "abc:parent1" 

Oto the detailed description of the command.

Aktualizacja: Choć powyższa sugestia pomaga uzyskać pożądany wynik, z Redis klawisze komend jest zła jak inni wspomniano. KEY blokuje i może zużywać dużo pamięci RAM podczas przygotowywania odpowiedzi.

Nie używaj klawiszy w zwykłym kodzie aplikacji. Jeśli szukasz sposobu na znalezienie kluczy w podzbiorze klucza, rozważ użycie opcji SKANOWANIE lub zestawy.

Dzięki Real Bill i Itamar, mam lepsze zrozumienie.

+2

'KLUCZE' jest złe ... –

+0

Jak zrobić z 'zezwoleniami:/url1/id/sub: write' oraz' permission:/url1/id: write', aby dopasować tylko 'permission:/url1/[^/] + ' – Natim

Powiązane problemy