Spørring Redis fra Python

Spørring Redis fra Python
Remote Dictionary Server, eller Redis for kort, er en gratis, åpen kildekode-database. Redis er en enkelttrådet NoSQL-database som er bygget for høy ytelse og lav latens mellom dataavlesninger og skriver. Den bruker nøkkelverdipar for å lagre dataene.

Selv om dataene er lagret i systemets minne, kan du legge til utholdenhet ved å dumpe de lagrede dataene til disk og laste dem inn når det er nødvendig.

I denne guiden vil vi introdusere deg for viktige konsepter i Redis og vise deg hvordan du bruker Redis med Python -programmeringsspråket.

Installere Redis

Det første trinnet er å sette opp utviklingsverktøyene. I denne guiden bruker vi et Debian 11 Linux -system.

Åpne terminalen og legg til de offisielle Redis -depotene som:

sudo apt-get oppdatering
sudo apt -get install curl gnupg -y
krøll https: // pakker.Redis.IO/GPG | sudo apt-key add -
ekko "Deb https: // pakker.Redis.IO/Deb $ (LSB_Release -cs) Main "| Sudo Tee/etc/Apt/Sources.liste.d/redis.liste
sudo apt-get oppdatering
sudo apt -get installer redis -y

Når du har installert Redis, start serveren med kommandoen.

Redis-server

Du kan også bruke SystemCTL til å starte Redis -serveren ved å bruke kommandoen som vist nedenfor:

sudo service redis-server start

Redis Basics

Før vi dykker ned i Python for å jobbe med en Redis-database, la oss først sammenfatte hvordan vi bruker Redis ved hjelp av kommandolinjegrensesnittet.

Koble til klyngen.

Når Redis-serveren kjører, må du åpne en ny terminaløkt og gå inn i Redis Command-Line-klienten som:

$ redis-cli
127.0.0.1: 6379>

Når du har kjørt Redis-CLI-kommandoen, bør du få en ledetekst som viser en IP-adresse og porten til Redis-serveren.

Bytter "databaser"

Redis fungerer ikke som en typisk relasjonsdatabase. Imidlertid inneholder den et konsept med databaser som er isolerte samlinger av nøkkelverdipar. I motsetning til en database i relasjonsdatabaser, i Redis, har en database ikke skjemaer, tabeller eller rader.

I Redis bruker vi indeksverdier som 0 for å få tilgang til den første databasen. Redis gir ikke tilpasset navngivning som Sample_Database som angitt i tradisjonelle databaser.

For å velge en spesifikk database, bruk SELECT -kommandoen etterfulgt av databasens indeks for å få tilgang til den.

For eksempel for å velge database 10.

127.0.0.1: 6379 [1]> Velg 9
Ok

Merk: Databaseindekser i Redis Start fra 0 til 15. Hvis du prøver å få tilgang til en indeks over 16, vil du komme ut av rekkefeil.

127.0.0.1: 6379 [15]> Velg 16
(Feil) ERR DB -indeksen er utenfor rekkevidde

Innstilling av verdier

Som vi nevnte, bruker Redis nøkkelverdi-notasjon for å lagre dataene. Du kan legge til nye data ved hjelp av SET -kommandoen og nøkkelen og verdiene atskilt med et rom.

For eksempel:

Angi navn "John"
Ok

Hvis Redis -kommandoen kjøres vellykket, bør du se en [OK].

Det er bra å sikre at du gir både nøkkelen og verdien i den angitte kommandoen. Ellers vil du få et feil antall argumenterfeil som vist:

127.0.0.1: 6379 [15]> Sett Novalue
(Feil) feil feil antall argumenter for 'sett' -kommando

Hente verdier

Du kan hente verdier som er lagret i Redis -serveren ved hjelp av GET -kommandoen og nøkkeltnavnet. For eksempel for å få verdien av nøkkelen "navn" vi kan gjøre:

Få navn
"John"

Forsikre deg om at den spesifiserte tasten eksisterer på serveren. Hvis du spesifiserer en ikke-eksisterende nøkkel, vil du få et NIL-resultat som:

Få noe
(null)

Fjerne nøkler

I Redis kan du slette en nøkkel og tilhørende data ved å bruke Del -kommandoen og nøkkens navn.

For eksempel:

Del navn
(Heltall) 1

Bruker Python for å jobbe med Redis

Selv om du kan opprette biblioteket ditt for å jobbe med Redis, er en vanlig praksis å bruke allerede tilgjengelige verktøy for å utføre slike oppgaver.

Du kan bla gjennom Redis Clients -katalogen for å søke etter et passende bibliotek.

https: // redis.IO/klienter#Python

I dette eksemplet vil vi bruke Redis-PY, da det er aktivt vedlikeholdt og enkelt å installere og bruke.

Installere Python 3

Før du fortsetter videre, må du forsikre deg om at du har installert Python på systemet ditt. Åpne terminalen og skriv inn kommandoen:

Python3 -Versjon
-Bash: Python: Kommando ikke funnet

Hvis du får en "kommando ikke funnet" feil, må du installere python.

Bruk kommandoene:

sudo apt oppdatering
sudo apt install python3.9

Ovennevnte kommandoer vil oppdatere programvarelagrene og installere Python versjon 3.9. Når du er fullført, må du forsikre deg om at du har riktig Python -versjon.

Python3 -Versjon
Python 3.9.2

Installer Pip

For å installere Redis-PY-pakken, må vi sørge for at vi har installert Pip. Åpne terminalen og skriv inn kommandoen:

sudo apt-get install python3-pip

Installere Redis-Py

Når du har installert PIP3, skriv inn kommandoen nedenfor for å installere Redis-PY-pakken.

sudo pip3 installer redis

Bruke Redis-PY-pakke.

For å illustrere hvordan du jobber med Redis ved hjelp av Python -pakken, vil vi gjenskape operasjonene i Redis Basics -delen.

La oss starte med å koble oss til Redis.

Opprett en Python -fil og legg til koden som vises nedenfor for å koble til Redis -klyngen.

Importer Redis
# Opprett tilkobling til Redis -klyngen
R = Redis.Redis (vert = 'localhost', port = 6379)

Når vi har en forbindelse til serveren, kan vi begynne å utføre operasjoner.

Merk: Filen kobles til en database ved indeks 0. Du kan spesifisere målindeksen din ved å stille inn DB -parameteren som:

R = Redis.Redis (vert = 'localhost', port = 6379, db = 10)

Eksemplet ovenfor vil koble seg til databasen ved indeks 10.

For å lage et nøkkelverdipar ved hjelp av Python-pakken, kan du gjøre:

r.Sett ("Navn", "John Doe")

Linjen over vil ta henholdsvis de første argumentene som nøkkel og verdi.

For å hente verdiene, bruk GET -funksjonen som:

r.få ("navn")
Skriv ut navn

Ovennevnte spørring vil returnere verdien i den spesifiserte tasten som en kodet verdi:

b'john doe '

Du kan bruke dekodefunksjonen til å avkode verdien.

trykk (navn.dekode())
John Doe

For å slette en nøkkel og dens tilsvarende data, bruk slettfunksjonen som vist:

r.slett ("Navn")

Hvis du får verdien lagret i en slettet nøkkel, vil Python returnere en ingen verdi.

Konklusjon

I denne artikkelen dykker vi dypt inn i å jobbe med Redis -databasen. Redis er kraftig og kan være viktig i miljøer med høy ytelse. Sjekk dokumentasjonen for å lære å jobbe med Redis og Redis-PY-pakken.