2015-04-01 3 views
5

Redis поддерживает lua-скриптинг. Используя команду eval, мы можем выполнить lua-скрипт в redis. Сценарий lua скомпилирован или интерпретирован, когда redis вызывает сценарий lua?Является ли lua вызванным из redis интерпретированным или скомпилированным?

+3

Как вы считаете, разница между этими двумя была бы в этом случае? На какой вопрос вы действительно пытаетесь спросить? –

ответ

2

Сценарии Lua, отправленные в библиотеку Lua для выполнения, всегда компилируются в соответствии с инструкциями Lua VM перед выполнением. Эти инструкции затем интерпретируются Lua VM.

+0

Здесь http://intro2libsys.info/introduction-to-redis/lua-scripting написано, что redis имеет интерпретатор lua. Означает ли это, что когда redis делает вызов для выполнения сценария lua, он интерпретируется и не компилируется? – Ridhima

+2

Redis переносит ваш скрипт в функцию и использует ['luaL_loadbuffer'] (http://www.lua.org/manual/5.1/manual.html#luaL_loadbuffer), как вы можете видеть [здесь] (https: // github. ком/antirez/Redis/BLOB/902b877/SRC/scripting.C# L850-L865). – deltheil

+1

Полезно знать на самом деле! И компиляция должна выполняться только один раз, когда вы отправляете только SHA1 для следующих вызовов lua. – zenbeni

Смежные вопросы