redis
Lua manus
Sök…
Introduktion
Redis tillhandahåller ett par mekanismer för att utöka databasens funktionalitet. En mekanism är genom användning av LUA-skript på serversidan som kan köras för att manipulera data. Lua-skript kan vara användbara för att utföra dyra operationer eller för att genomföra atomoperationer som kräver logik.
Kommandon för skript
Redis erbjuder sju olika operationer för att arbeta med skript:
- Utvärderingsoperationer (EVAL, EVALSHA)
- SCRIPT-operationer (DEBUG, EXISTS, FLUSH, KILL, LOAD)
EVAL-kommandot utvärderar ett skript som tillhandahålls som ett strängargument till servern. Skript har åtkomst till de angivna Redis-nycklarna namngivna som argument till kommandot och och ytterligare strängparametrar som användaren vill skicka till skriptet.
Till exempel kommandot:
EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second
orsakar körning av ett användardefinierat Lua-skript som helt enkelt returnerar de levererade värdena. Samtalet är involverat med 2 återuppringningsknappar (tangent1 och tangent2) och två parametrar.
Ett annat sätt att köra ett Lua-skript är att först ladda det i databasen och sedan köra det med en SHA-hash för skriptet:
> script load "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}"
"a42059b356c875f0717db19a51f6aaca9ae659ea"
> evalsha "a42059b356c875f0717db19a51f6aaca9ae659ea" 2 key1 key2 foo bar
1) "key1"
2) "key2"
3) "foo"
4) "bar"
Kommandot skriptbelastning laddar skriptet och lagrar det i databasen. En shasignatur av skriptet returneras så att det kan refereras till av framtida samtal. EVALSHA-funktionen tar sha och kör motsvarande skript från databasen.