- Повечето (но не всички) обекти използват ключ
- Използване на пространства от имена
- Извличане на всички съществуващи ключове
Подобно на други нерелационни машини за бази данни, понякога може да бъде трудно да се запознаете с това как Redis обработва структури от данни и асоциации. Това е особено вярно, когато Redis се сравнява с по-традиционни релационни бази данни с поставени под карантина таблици, всяка от които съдържа множество редове и колони за съхраняване на данни.
Тъй като Redis не е релационен, всичко в системата е конфигурирано с основен key/value
двойки на най-простото ниво. По-специално по време на разработката може да е трудно да се следи всичко, което вече съществува в базата данни, така че в този кратък урок ще разгледаме метода за извличане на всички keys
от база данни на Redis с няколко прости команди.
Повечето (но не всички) обекти използват ключ
За по-голямата част от съхранението на данни с Redis, данните ще се съхраняват в прост key/value
двойка. Това се показва най-добре чрез redis-cli
(интерфейс на командния ред) с помощта на GET
и SET
команди.
Например, може да искаме да съхраняваме информация за books
, като title
и author
от няколко от любимите ни.
> SET title "The Hobbit"
OK
> SET author "J.R.R. Tolkien"
OK
title
и author
са keys
сме задали и действителните стойности на низовете бяха посочени след това. Така че можем да ги видим с GET
, така:
> GET title
"The Hobbit"
> GET author
"J.R.R. Tolkien"
Използване на пространства от имена
Всичко това е добре, но как да добавим още една книга? Не можем да използваме повторно същото title
и author
ключове или ще презапишем съществуващите данни. Вместо това можем да използваме синтаксис на пространството от имена, като използваме :
разделител и даване на всяко title
или author
въведете уникален цифров 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
Сега използвате GET
изисква добавяне на уникалния цифров key
също така:
> GET title:1
"The Hobbit"
> GET title:2
"The Silmarillion"
Извличане на всички съществуващи ключове
Както се оказва, всеки SET
командата, която издадохме по-горе, създаде нов, уникален key
в нашата база данни Redis. За да получите списък с всички текущи keys
които съществуват, просто използвайте KEYS
команда:
> KEYS *
1) "title:1"
2) "title:2"
3) "title"
4) "author:2"
5) "author"
6) "author:1"
Като следвате KEYS
със звездичка (*
) – което действа като търсене с заместващи знаци – ние молим Redis да извлече всички ключове в системата. По този начин ние виждаме не само нашите две оригинални title
и author
ключове, но също и четирите изброени версии, които последваха.
Синтаксисът след KEYS
може да се използва за търсене на конкретни думи или фрази в рамките на ключа, или точно съвпадение. Тук искаме всички ключове, които съдържат текста 'title'
:
> KEYS *title*
1) "title:1"
2) "title:2"
3) "title"
ВНИМАНИЕ:Както е споменато в официалната документация, препоръчително е да избягвате използването на KEYS
команда на много големи бази данни, но по-специално избягвайте използването й в производствена среда. Тъй като KEYS
връща потенциално всеки ключ в системата, това може да има драматично отрицателно въздействие върху производителността.