Utilizarea comenzilor Scan în Redis pe Linux
Redis, un magazin de structuri de date în memorie, open-source, este cunoscut pentru viteza și versatilitatea sa ca bază de date cheie-valoare. Una dintre caracteristicile sale puternice este capacitatea de a parcurge incremental seturile de date folosind comenzi de scanare. Acest lucru este deosebit de util atunci când aveți de-a face cu seturi mari de date, deoarece permite recuperarea eficientă a datelor fără a copleși serverul. Pentru utilizatorii de pe un server Linux dedicat, utilizarea comenzilor de scanare în Redis poate îmbunătăți performanța gestionării datelor, permițând procesarea precisă și optimizată a seturilor de date din punct de vedere al resurselor. În acest articol, vom explora modul de utilizare eficientă a comenzilor de scanare în Redis în cadrul unui mediu Linux, oferind exemple detaliate și cele mai bune practici pentru gestionarea și recuperarea datelor la scară..
Ce sunt comenzile de scanare?
Comenzile de scanare din Redis oferă o modalitate de a itera peste chei, seturi, hașuri și seturi sortate într-un mod neblocat. Spre deosebire de comanda KEYS, care poate fi periculoasă pentru seturile mari de date, deoarece returnează toate cheile potrivite deodată, comenzile de scanare returnează un număr mic de elemente odată. Acest lucru minimizează impactul asupra performanței și permite iterația incrementală
Comenzi de scanare a cheilor
- SCAN: Iteră prin cheile din spațiul cheilor.
- SSCAN: Iteră prin elementele unui set.
- HSCAN: trece prin câmpurile și valorile unui hash.
- ZSCAN: Iteră prin membrii și scorurile unui set sortat.
Sintaxa de bază a comenzilor de scanare
Fiecare comandă de scanare are o sintaxă similară
- cursor: Un număr întreg care reprezintă poziția de la care se începe scanarea. Pentru a începe o scanare nouă, utilizați 0.
- MATCH pattern: (opțional) Un model pentru filtrarea cheilor returnate. Suportă modele de tip glob.
- COUNT count: (opțional) Un indiciu pentru Redis cu privire la câte elemente să returneze în fiecare iterație.
Instalarea Redis pe Linux
Pentru CentOS/RHEL, utilizați
Odată instalat, porniți serverul Redis
Conectarea la Redis
Deschideți terminalul și conectați-vă la instanța Redis utilizând Redis CLI
Acum puteți executa comenzi Redis în CLI
Utilizarea comenzii SCAN
Exemplul 1: SCAN de bază
Pentru a extrage toate cheile din baza de date Redis, puteți utiliza
Această comandă va returna un cursor și o listă de chei
Exemplul 2: Utilizarea MATCH pentru filtrarea cheilor
Dacă doriți să găsiți cheile care corespund unui anumit model, cum ar fi cheile care încep cu “user:”, puteți utiliza
Această comandă returnează numai cheile care încep cu “user:”
Exemplul 3: Specificarea COUNT
Pentru a sugera câte chei Redis ar trebui să returneze în fiecare iterație, puteți specifica un număr
Aceasta va încerca să returneze aproximativ 10 chei. Rețineți că numărul real returnat poate fi mai mic decât acesta
Exemplul 4: Iterarea prin toate cheile
Pentru a itera prin toate cheile în mai multe iterații, trebuie să țineți evidența cursorului returnat. Iată un exemplu simplu de script shell:
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
Utilizarea comenzii SSCAN
Comanda SSCAN este utilizată pentru a itera prin elementele unui set. Sintaxa sa este similară cu SCAN
Exemplu de SSCAN
Pasul 1: Crearea unui set și adăugarea de elemente
Să creăm un set numit myset și să îi adăugăm câteva elemente