- Повечето (но не всички) обекти използват ключ
- Използване на пространства от имена
- Извличане на всички съществуващи ключове
Подобно на други нерелационни машини за бази данни, понякога може да бъде трудно да се запознаете с това как 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 връща потенциално всеки ключ в системата, това може да има драматично отрицателно въздействие върху производителността.