Redis
 sql >> Database >  >> NoSQL >> Redis

Perché non riesco a eseguire lo script lua in redis dopo il riavvio di redis?

Gli script Lua lato server non vengono salvati o archiviati da Redis. Non sono simili alle stored procedure che puoi trovare in RDBMS.

I client dovrebbero fornire il testo dello script almeno per la prima esecuzione dello script (cioè utilizzare EVAL per la prima esecuzione e EVALSHA per le chiamate successive). In alternativa, puoi anche utilizzare SCRIPT LOAD e SCRIPT EXISTS, potrebbe essere più conveniente a seconda della situazione.

Questo è un po' più complesso da gestire per l'applicazione, ma ci sono dei vantaggi:rende il server Redis senza stato per quanto riguarda lo scripting Lua. Il codice dell'applicazione (inclusi gli script Lua) è gestito lato applicazione. Non è necessario applicare qualcosa sul server Redis prima di caricare una nuova versione dell'applicazione (anche se gli script Lua sono cambiati).

Questa proprietà è molto utile nel contesto di un'infrastruttura distribuita per supportare carichi applicativi al volo, partizionamento orizzontale lato client o cluster Redis.