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

Jak zdobyć wszystkie klucze w Redis?

  • 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 authorkeys 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ść.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jakie są przypadki użycia, w których Redis jest lepszy od Aerospike?

  2. Przechowuj wiele wersji danych w pamięci podręcznej Redis

  3. Redis jest pusty po uruchomieniu, chociaż istnieje plik .rdb

  4. Problemy z uruchomieniem instancji OAuthd

  5. sesja wiosenna redis „Nie zdefiniowano fasoli o nazwie „springSessionRepositoryFilter””