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.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow