Opprette transaksjoner i Redis

Opprette transaksjoner i Redis
Hvis du ser alvorlig på Redis, vil du bruke transaksjoner for å administrere dataene dine. Redis -transaksjoner er ikke veldig forskjellige fra transaksjoner i en relasjonsdatabase.

En databasetransaksjon refererer til en enkelt arbeidsenhet bestående av enkelt til flere spørsmål. I tilfeller kan en operasjon bare klassifiseres som en transaksjon hvis det er endringer i databasen.

Vi vil ikke bekymre oss for det, men vi vil lære å bruke Watch -kommandoen sammen med Redis -transaksjoner for denne.

Hva er transaksjoner?

I Redis består transaksjoner av fire hovedkommandoer: klokke, exec, kasser og multi.

Ved hjelp av kommandoene ovenfor kan du åpne en blokk og legge til flere kommandoer på en gang. Når du er fullført, kjører du kommandoene som en enkelt enhet.

For at en transaksjon skal lykkes, sikrer Redis at:

  1. Alle kommandoene som er spesifisert i en transaksjonsenhet, utføres fortløpende. Derfor først til mølla.
  2. Alle kommandoene i en transaksjonsenhet må utføre vellykket. Hvis en av kommandoene i enheten mislykkes, mislykkes også hele transaksjonsblokken. Denne funksjonen er kjent som atomkommandoutførelse
  3. For det tredje blir kommandoer i en transaksjon serialisert. Derfor kan en klient ikke være en server mens en transaksjonsenhet kjører.

Redis opprette transaksjon

Du oppretter en transaksjonsenhet ved hjelp av multi -kommandoen. Multi -kommandoen vil returnere OK. Du kan gå foran og legge til alle transaksjonskommandoene etter den andre.

I stedet for å utføre kommandoene, vil Redis stå i kø dem i innsetting til du ringer dem.

Et eksempel er som vist nedenfor:

127.0.0.1: 6379> multi
Ok

Redis utfør transaksjonsenhet

Redis vil stå i kø kommandoene i en transaksjonsenhet til du manuelt utfører dem.

Vi kan gjøre dette ved hjelp av Exec -kommandoen. Dette forteller Redis å kjøre alle de kø -kommandoene i innsatsbestillingen.

Et eksempelbruk er som vist nedenfor:

127.0.0.1: 6379> Sett NewKey "100"
I kø
127.0.0.1: 6379> incr newKey
I kø
127.0.0.1: 6379> Få NewKey
I kø
127.0.0.1: 6379>

Du vil merke at hver kommando som er utført er i kø. En kommando i kø er en kommando som er planlagt å kjøre etter at exec kalles.

For å kjøre det, ring exec som:

127.0.0.1: 6379> exec
1) Ok
2) (Heltall) 101
3) "101"

Dette skal utføre alle kommandoene og returnere de resulterende verdiene.

Redis Fjern kommandokøen

Anta at du vil rengjøre kommandokøen og skylle alle planlagte kommandoer? For det kan du bruke Discard -kommandoen som vist:

127.0.0.1: 6379> multi
Ok
127.0.0.1: 6379> Sett NewKey "100"
I kø
127.0.0.1: 6379> incr newKey
I kø
127.0.0.1: 6379> Få NewKey
I kø
127.0.0.1: 6379> Kasser
Ok

Etter å ha kjørt kassekommandoen, vil Redis returnere OK og lukke transaksjonsenheten.

Konklusjon

Denne korte artikkelen beskriver hvordan du fungerer og bruker Redis -transaksjonene i databasen din. Sjekk ressursen nedenfor for å lære mer.

https: // redis.IO/emner/transaksjoner