2015-04-01 6 views
5

Redis supporta lo scripting lua. Usando il comando eval, possiamo eseguire uno script lua in redis. Lo script lua è compilato o interpretato quando redis chiama uno script lua?Lua chiamata da redis viene interpretata o compilata?

+3

Cosa credi che la differenza tra questi due sarebbe in questo caso? Quale domanda stai davvero cercando di chiedere? –

risposta

2

Gli script Lua inviati alla libreria Lua per l'esecuzione vengono sempre compilati con le istruzioni di Lua VM prima dell'esecuzione. Queste istruzioni vengono quindi interpretate da Lua VM.

+0

Qui http://intro2libsys.info/introduction-to-redis/lua-scripting è scritto che redis ha un interprete lua. Significa che quando redis effettua una chiamata per eseguire uno script lua, viene interpretato e non compilato? – Ridhima

+2

Redis avvolge il tuo script in una funzione e usa ['luaL_loadbuffer'] (http://www.lua.org/manual/5.1/manual.html#luaL_loadbuffer) come puoi vedere [qui] (https: // github. com/antirez/Redis/blob/902b877/src/scripting.C# L850-L865). – deltheil

+1

Buono a sapersi! E la compilazione dovrebbe essere eseguita una sola volta, in quanto si invia solo SHA1 per le successive chiamate lua. – zenbeni

Problemi correlati