Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Por que não consigo executar o script lua no redis após a reinicialização do redis?


Os scripts Lua do lado do servidor não são salvos ou armazenados pelo Redis. Eles não são semelhantes aos procedimentos armazenados que você pode encontrar no RDBMS.

Os clientes devem fornecer o texto do script pelo menos para a primeira execução do script (ou seja, use EVAL para a primeira execução e EVALSHA para as próximas chamadas). Alternativamente, você também pode usar SCRIPT LOAD e SCRIPT EXISTS, pode ser mais conveniente dependendo da situação.

Isso é um pouco mais complexo de manusear para o aplicativo, mas há benefícios:torna o servidor Redis sem estado em relação ao script Lua. O código do aplicativo (incluindo scripts Lua) é gerenciado no lado do aplicativo. Você não precisa aplicar algo no servidor Redis antes de carregar uma nova versão do aplicativo (mesmo que os scripts Lua tenham sido alterados).

Essa propriedade é muito útil no contexto de uma infraestrutura distribuída para dar suporte a cargas de aplicativos em tempo real, ou fragmentação do lado do cliente ou cluster Redis.