- Większość (ale nie wszystkie) obiektów używa klucza
- Korzystanie z przestrzeni nazw
- Pobieranie wszystkich istniejących kluczy
Podobnie jak w przypadku innych nierelacyjnych silników baz danych, zastanowienie się nad tym, jak Redis obsługuje struktury i skojarzenia danych, może czasami być trudne. Jest to szczególnie prawdziwe, gdy Redis jest porównywany z bardziej tradycyjnymi relacyjnymi bazami danych z tabelami poddanymi kwarantannie, z których każda zawiera wiele wierszy i kolumn do przechowywania danych.
Ponieważ Redis nie jest relacyjny, wszystko w systemie jest konfigurowane za pomocą podstawowego key/value
pary na najprostszym poziomie. Szczególnie podczas programowania może być trudne śledzenie wszystkiego, co już istnieje w bazie danych, więc w tym krótkim samouczku omówimy metodę pobierania wszystkich keys
z bazy danych Redis za pomocą kilku prostych poleceń.
Większość (ale nie wszystkie) obiektów używa klucza
W przypadku ogromnej większości przechowywania danych w Redis dane będą przechowywane w prostym key/value
para. Najlepiej widać to za pomocą redis-cli
(interfejs wiersza poleceń) przy użyciu GET
i SET
poleceń.
Na przykład możemy chcieć przechowywać pewne informacje o books
, na przykład title
i author
kilku naszych ulubionych.
> SET title "The Hobbit"
OK
> SET author "J.R.R. Tolkien"
OK
title
i author
są keys
ustawiliśmy, a rzeczywiste wartości ciągu zostały określone później. Więc możemy je zobaczyć za pomocą GET
, jak tak:
> GET title
"The Hobbit"
> GET author
"J.R.R. Tolkien"
Korzystanie z przestrzeni nazw
Wszystko dobrze i dobrze, ale jak dodać kolejną książkę? Nie możemy ponownie użyć tego samego title
i author
klucze lub nadpiszemy istniejące dane. Zamiast tego możemy użyć składni przestrzeni nazw, używając :
separatora i nadanie każdemu title
lub author
wprowadź unikalny numeryczny key
:
> SET title:1 "The Hobbit"
OK
> SET author:1 "J.R.R. Tolkien"
OK
> SET title:2 "The Silmarillion"
OK
> SET author:2 "The Silmarillion"
OK
Teraz używam GET
wymaga dodania unikalnego liczbowego key
a także:
> GET title:1
"The Hobbit"
> GET title:2
"The Silmarillion"
Pobieranie wszystkich istniejących kluczy
Jak się okazuje, każdy SET
wydane powyżej polecenie utworzyło nowy, unikalny key
w naszej bazie danych Redis. Aby uzyskać listę wszystkich aktualnych keys
które istnieją, po prostu użyj KEYS
polecenie:
> KEYS *
1) "title:1"
2) "title:2"
3) "title"
4) "author:2"
5) "author"
6) "author:1"
Postępując zgodnie z KEYS
z gwiazdką (*
) – które działa jak wyszukiwanie za pomocą symboli wieloznacznych – prosimy Redis o pobranie wszystkich kluczy w systemie. W ten sposób widzimy nie tylko nasze dwa oryginalne title
i author
klucze, ale także cztery wymienione wersje, które nastąpiły później.
Składnia po KEYS
może być używany do wyszukiwania określonych słów lub fraz w kluczu lub dokładnego dopasowania. Tutaj chcemy wszystkie klucze zawierające tekst 'title'
:
> KEYS *title*
1) "title:1"
2) "title:2"
3) "title"
UWAGA:Jak wspomniano w oficjalnej dokumentacji, zaleca się unikanie używania KEYS
polecenie na bardzo dużych bazach danych, ale w szczególności unikaj używania go w środowisku produkcyjnym. Od KEYS
zwraca potencjalnie każdy klucz w systemie, co może mieć dramatyczny negatywny wpływ na wydajność.