Veamos cómo funciona.
-
Conéctese al servidor Redis utilizando la interfaz de línea de comandos de Redis (redis-cli
).
redis-cli
-
Ahora, carguemos un script Lua usando SCRIPT LOAD
. Usaremos el mismo script del paso anterior que incrementa un contador por una cantidad especificada.
SCRIPT LOAD "local current = redis.call('INCRBY', KEYS[1], ARGV[1]); return current"
Este comando cargará el script en la caché de scripts del servidor Redis y devolverá el hash SHA1 del script. Debería ver una salida similar a esta:
"6b1e8dd2999cb08546e74339c0c9489f9f89a84b"
Este es el hash SHA1 del script. Tome nota de este hash, ya que lo necesitará en el siguiente paso. El valor exacto del hash puede diferir.
-
Ahora, carguemos el script que establece una clave (key) a un valor, donde tanto la clave como el valor se pasan como argumentos.
SCRIPT LOAD "redis.call('SET', KEYS[1], ARGV[1]); return ARGV[1]"
Debería ver una salida similar a esta:
"a8b2b3648969459a8198262a9166e945e890987c"
Nuevamente, tome nota de este hash.
-
Carguemos el script que concatena dos cadenas (strings) pasadas como argumentos y establece el resultado en una clave.
SCRIPT LOAD "local result = ARGV[1] .. ARGV[2]; redis.call('SET', KEYS[1], result); return result"
Debería ver una salida similar a esta:
"d2a800a974ca96849295220424f9a0664a495345"
Tome nota de este hash también.
-
Puede verificar que los scripts estén cargados usando el comando SCRIPT EXISTS
. Este comando toma uno o más hashes SHA1 como argumentos y devuelve un array de 0s y 1s, donde 1 indica que el script con el hash correspondiente está cargado y 0 indica que no lo está.
Por ejemplo, para verificar si el primer script que cargamos todavía está cargado, use el siguiente comando, reemplazando el hash con el que obtuvo en el paso 2:
SCRIPT EXISTS 6b1e8dd2999cb08546e74339c0c9489f9f89a84b
Salida (Output):
1) (integer) 1
Esto indica que el script está cargado.
Si intenta verificar un script que no está cargado:
SCRIPT EXISTS 0000000000000000000000000000000000000000
Salida (Output):
1) (integer) 0
Esto indica que el script no está cargado.
-
Salga de redis-cli
. Esto es importante para que los cambios se registren.
exit