redis
Lua Scripting
Ricerca…
introduzione
Redis fornisce un paio di meccanismi per estendere la funzionalità del database. Un meccanismo è l'utilizzo di script LUA sul lato server che possono essere eseguiti per manipolare i dati. Gli script Lua possono essere utili per eseguire operazioni costose o per implementare operazioni atomiche che richiedono la logica.
Comandi per lo scripting
Redis offre sette diverse operazioni per lavorare con gli script:
- Operazioni Eval (EVAL, EVALSHA)
- Operazioni SCRIPT (DEBUG, EXISTS, FLUSH, KILL, LOAD)
Il comando EVAL valuta uno script fornito come argomento stringa sul server. Gli script possono accedere alle chiavi Redis specificate denominate come argomenti del comando e ai parametri di stringa aggiuntivi che l'utente desidera passare allo script.
Ad esempio, il comando:
EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second
causa l'esecuzione di uno script Lua definito dall'utente che restituisce semplicemente i valori forniti. La chiamata è coinvolta con 2 tasti Redis (tasto 1 e tasto 2) e due parametri.
Un altro modo per eseguire uno script Lua è caricarlo prima nel database, quindi eseguirlo usando un hash SHA dello script .:
> 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"
Il comando di caricamento dello script carica lo script e lo memorizza nel database. Viene restituita una firma sha dello script in modo che possa essere referenziata da chiamate future. La funzione EVALSHA prende lo sha ed esegue lo script corrispondente dal database.