Използване на командите за сканиране в Redis под Linux
Redis, хранилище на структури от данни с отворен код в паметта, е известно със своята скорост и гъвкавост като база данни ключ-стойност. Една от мощните му функции е възможността за инкрементална итерация през набори от данни с помощта на команди за сканиране. Това е особено полезно при работа с големи масиви от данни, тъй като позволява ефективно извличане на данни, без да се претоварва сървърът. За потребителите на специализиран Linux сървър използването на команди за сканиране в Redis може да подобри производителността на работата с данни, като позволи прецизна и оптимизирана по отношение на ресурсите обработка на набори от данни. В тази статия ще разгледаме как ефективно да използваме командите за сканиране в Redis в среда на Linux, като предлагаме подробни примери и най-добри практики за управление и извличане на данни в мащаба на.
Какво представляват командите за сканиране?
Командите за сканиране в Redis осигуряват начин за итерация над ключове, множества, хешове и сортирани множества по неблокиращ начин. За разлика от командата KEYS, която може да бъде опасна за големи масиви от данни, тъй като връща всички съвпадащи ключове наведнъж, командите за сканиране връщат малък брой елементи наведнъж. Това свежда до минимум въздействието върху производителността и позволява инкрементална итерация
Команди за сканиране на ключове
- SCAN: Итерира през ключовете в пространството от ключове.
- SSCAN: Итервюира елементи в множество.
- HSCAN: Итерира през полета и стойности в хеш.
- ZSCAN: Преминава през членове и резултати в сортирано множество.
Основен синтаксис на командите за сканиране
Всяка команда за сканиране има подобен синтаксис
- курсор: Цяло число, което представлява позицията, от която да започне сканирането. За да започнете ново сканиране, използвайте 0.
- MATCH pattern: (по избор) Шаблон за филтриране на върнатите ключове. Поддържа шаблони в стил glob.
- COUNT count (брой): (незадължително) Указание към Redis колко елемента да бъдат върнати при всяка итерация.
Инсталиране на Redis в Linux
За CentOS/RHEL използвайте
След като инсталирате, стартирайте сървъра Redis
Свързване с Redis
Отворете терминала и се свържете с вашата инстанция на Redis, като използвате Redis CLI
Сега можете да изпълнявате команди на Redis в CLI
Използване на командата SCAN
Пример 1: Основен SCAN
За да извлечете всички ключове в базата данни Redis, можете да използвате
Тази команда ще върне курсор и списък с ключове
Пример 2: Използване на MATCH за филтриране на ключове
Ако искате да намерите ключове, които отговарят на определен модел, например ключове, които започват с “user:”, можете да използвате
Тази команда връща само ключовете, които започват с “user:”
Пример 3: Задаване на COUNT
За да подскажете колко ключа трябва да върне Redis при всяка итерация, можете да зададете брой
Това ще се опита да върне приблизително 10 ключа. Имайте предвид, че действителният брой върнати ключове може да е по-малък от този
Пример 4: Итериране през всички ключове
За да преминете през всички ключове в няколко итерации, трябва да следите върнатия курсор. Ето един прост пример за шел скрипт:
cursor=0
while true; do
result=$(redis-cli SSCAN myset $cursor MATCH apple:*)
echo "$result" # Process the result as needed
cursor=$(echo "$result" | awk 'NR==1{print $1}') # Update the cursor
if [[ "$cursor" == "0" ]]; then
break # Stop when the cursor is back to 0
fi
done
Използване на командата SSCAN
Командата SSCAN се използва за итерация през елементите на дадено множество. Синтаксисът ѝ е подобен на този на SCAN
Пример за SSCAN
Стъпка 1: Създаване на набор и добавяне на елементи
Нека да създадем множество, наречено myset, и да добавим някои елементи към него