Redis
 sql >> база данни >  >> NoSQL >> Redis

Как да получите всички ключове в Redis

  • Повечето (но не всички) обекти използват ключ
    • Използване на пространства от имена
  • Извличане на всички съществуващи ключове

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Грешка в Redigo ScanStruct с time.Time

  2. Redis - Как ключът HASH и SET и ZSET са свързани в записа на CrudRepository?

  3. Как да унищожим работни места, наредени от resque работници?

  4. Миграции на данни с Redis

  5. Кой е най-ефективният във времето начин за сериализиране/десериализиране на DataTable към/от Redis?