sql >> Base de Datos >  >> NoSQL >> Redis

¿Por qué no puedo ejecutar el script lua en redis después de reiniciar redis?

Redis no guarda ni almacena los scripts de Lua del lado del servidor. No son similares a los procedimientos almacenados que puede encontrar en RDBMS.

Se supone que los clientes deben proporcionar el texto del script al menos para la primera ejecución del script (es decir, usar EVAL para la primera ejecución y EVALSHA para las próximas llamadas). Alternativamente, también puede usar SCRIPT LOAD y SCRIPT EXISTS, puede ser más conveniente dependiendo de la situación.

Esto es un poco más complejo de manejar para la aplicación, pero tiene beneficios:hace que el servidor de Redis no tenga estado con respecto a las secuencias de comandos de Lua. El código de la aplicación (incluidos los scripts de Lua) se administra en el lado de la aplicación. No necesita aplicar algo en el servidor Redis antes de cargar una nueva versión de la aplicación (incluso si los scripts de Lua han cambiado).

Esta propiedad es muy útil en el contexto de una infraestructura distribuida para admitir cargas de aplicaciones sobre la marcha, fragmentación del lado del cliente o clúster de Redis.