Vamos ver como funciona.
-
Conecte-se ao servidor Redis usando a interface de linha de comando do Redis (redis-cli).
redis-cli
-
Agora, vamos carregar um script Lua usando SCRIPT LOAD. Usaremos o mesmo script da etapa anterior que incrementa um contador por uma quantidade especificada.
SCRIPT LOAD "local current = redis.call('INCRBY', KEYS[1], ARGV[1]); return current"
Este comando carregará o script no cache de scripts do servidor Redis e retornará o hash SHA1 do script. Você deve ver uma saída semelhante a esta:
"6b1e8dd2999cb08546e74339c0c9489f9f89a84b"
Este é o hash SHA1 do script. Anote este hash, pois você precisará dele na próxima etapa. O valor exato do hash pode ser diferente.
-
Agora, vamos carregar o script que define uma chave para um valor, onde tanto a chave quanto o valor são passados como argumentos.
SCRIPT LOAD "redis.call('SET', KEYS[1], ARGV[1]); return ARGV[1]"
Você deve ver uma saída semelhante a esta:
"a8b2b3648969459a8198262a9166e945e890987c"
Novamente, anote este hash.
-
Vamos carregar o script que concatena duas strings passadas como argumentos e define o resultado para uma chave.
SCRIPT LOAD "local result = ARGV[1] .. ARGV[2]; redis.call('SET', KEYS[1], result); return result"
Você deve ver uma saída semelhante a esta:
"d2a800a974ca96849295220424f9a0664a495345"
Anote este hash também.
-
Você pode verificar se os scripts estão carregados usando o comando SCRIPT EXISTS. Este comando recebe um ou mais hashes SHA1 como argumentos e retorna um array de 0s e 1s, onde 1 indica que o script com o hash correspondente está carregado e 0 indica que não está.
Por exemplo, para verificar se o primeiro script que carregamos ainda está carregado, use o seguinte comando, substituindo o hash pelo que você obteve na etapa 2:
SCRIPT EXISTS 6b1e8dd2999cb08546e74339c0c9489f9f89a84b
Saída:
1) (integer) 1
Isso indica que o script está carregado.
Se você tentar verificar um script que não está carregado:
SCRIPT EXISTS 0000000000000000000000000000000000000000
Saída:
1) (integer) 0
Isso indica que o script não está carregado.
-
Saia do redis-cli. Isso é importante para que as alterações sejam registradas.
exit