2015-04-01 13 views
5

Redis hỗ trợ lua scripting. Sử dụng lệnh eval, chúng ta có thể thực thi một kịch bản lệnh lua bằng redis. Là kịch bản lua biên dịch hoặc giải thích khi redis gọi một kịch bản lua?Lua được gọi là từ redis được dịch hoặc biên dịch?

+3

Bạn tin gì về sự khác biệt giữa hai trường hợp này trong trường hợp này? Bạn đang thực sự đặt câu hỏi gì? –

Trả lời

2

Các kịch bản lệnh Lua được gửi tới thư viện Lua để thực hiện luôn được biên dịch thành các lệnh Lua VM trước khi thực thi. Những hướng dẫn này sau đó được giải thích bởi máy ảo Lua.

+0

Ở đây http://intro2libsys.info/introduction-to-redis/lua-scripting nó được viết rằng redis có một thông dịch viên lua. Nó có nghĩa là khi redis thực hiện một cuộc gọi để thực hiện một kịch bản lua, nó được thông dịch và không được biên dịch? – Ridhima

+2

Redis bao bọc tập lệnh của bạn thành một hàm và sử dụng ['luaL_loadbuffer'] (http://www.lua.org/manual/5.1/manual.html#luaL_loadbuffer) như bạn có thể thấy [ở đây] (https: // github. com/antirez/redis/blob/902b877/src/scripting.C# L850-L865). – deltheil

+1

Tốt để biết thực sự! Và việc biên dịch chỉ nên thực hiện một lần khi bạn gửi SHA1 cho các cuộc gọi lua tiếp theo. – zenbeni

Các vấn đề liên quan