Redis Lua Scripting

Redis Lua Scripting

Redis er en gratis, åpen kildekode-database som er bredt vedtatt som en hurtigmekanisme eller meldingsmegler.

Selv om det er veldig allsidig og omfattende som standard, tillater det deg å utvide funksjonaliteten ved å bruke den innebygde LUA -tolken. Dette betyr at du kan skrive skript skrevet i LUA for å utføre ytterligere operasjoner i Redis -databasen.

Krav

For bedre å følge med denne opplæringen, anbefalte vi å ha den nyeste versjonen av Redis -serveren på systemet ditt.

Grunnleggende redis kunnskap er gunstig for å forstå kommandoene illustrert i denne opplæringen.

Redis eval -kommando

For å kjøre LUA -kommandoer i Redis, må du bruke eval -kommandoen. Kommandoen ber Redis om å utføre koden som et LUA-skript på serversiden.

Et eksempel er som vist:

127.0.0.1: 6379> eval "Redis.ring ('sett', nøkler [1], argv [1]) "1 nøkkelverdi

I eksemplet over starter vi med eval -kommandoen etterfulgt av et LUA -skript. Manuset bruker Redis.samtalefunksjon. Vi passerer deretter kommandoen for å kjøre, nøkkel og verdi som argumenter. Dette ligner på å kjøre SET -nøkkelverdier.

Merk at nøkler og argv betegner argumentene til skriptet. Vi spesifiserer antall nøkler som 1 i dette tilfellet.

Argumentparsing gjøres via ARGV, som holder argumenttabellen. I vårt tilfelle passerer vi verdien av nøkkelen.

Vi kan deretter få tilgang til nøklene fra indeks 1.

MERK: Det anbefales å spesifisere alle tastene som brukes i skriptet under nøkler og alle andre argumenter under ARGV.

Vi kan hente verdien av en nøkkel ved hjelp av Get -kommandoen:

127.0.0.1: 6379> eval "Redis.Ring ('Get', Keys [1]) "1 Key

Dette skal returnere verdien av den spesifiserte tasten.

Redis Evalsha -kommando

Redis gir deg også Evalsha -kommandoen for å huske en kommando basert på hasjverdien.

Dette fjerner behovet for å skrive skriptet på nytt hver gang du trenger det.

Eksempel:

Skriptbelastning "Retur Redis.Ring ('Get', Keys [1]) "

Kommandoen over skal returnere en SHA -verdi som:

"4E6D8FC8BB01276962CCE5371FA795A7763657AE"

Du kan deretter bruke denne SHA -verdien til å huske en kommando.

127.0.0.1: 6379> Evalsha 4E6D8FC8BB01276962CCE5371FA795A7763657AE 1 Nøkkel
"verdi"

For å fjerne alle lastede skript, kjør kommandoen:

127.0.0.1: 6379> Script Flush
Ok

Kommandoen over skal skylle skriptbufferen.

Konklusjon

Denne artikkelen beskriver de mest grunnleggende kommandoene som skal brukes når du jobber med LUA -skripting i Redis. Sjekk LUA -dokumentasjonen for å oppdage mer.