最近工作上需要在 Redis 上面寫 Script,Redis 從 2.6.0 版之後包了 Lua interpreter 進去開始支援用 Lua 語言寫 Script,
所以花一些時間去熟悉久仰的 Lua 語言。
筆記一下在 Ubuntu 18.04 上手 Lua 的過程。
Install
apt
Ubuntu 18.04 可以安裝到最新的 Lua 版本是 Lua 5.3
1 | ~$ sudo apt install lua5.3 |
不過要注意的是 Redis 中的 EVAL
版本是 5.1[1]
Building from source
1 | ~$ sudo apt install libreadline-dev |
Example: Hello, world!
Interactive Mode
1 | ~$ lua |
helloworld.lua
1 | ~$ vim helloworld.lua |
1 | function helloWorld(name) |
1 | ~$ lua helloworld.lua |
Unit Test
要在 Lua 寫 Unit Test 的話,根據 Unit Testing - lua-users wiki 的範例是使用 bluebird75/luaunit。
安裝 luaunit module 以 Lua 5.4 為例
1 | ~$ lua -v | awk '{print $2}' |
安裝 luaunit module 以 5.3 為例
1 | lua5.3 -v | awk '{print $2}' |
Example: helloWorld module
helloworld.lua
1 | module = {} |
test_helloworld.lua
1 | luaUnit = require("luaunit") |
Run LuaUnit
1 | ~$ lua test_helloworld.lua -v |
Error Handling
helloworld.lua
1 | module = {} |
test_helloworld.lua
1 | luaUnit = require("luaunit") |
1 | ~$ lua test_helloworld.lua -v |
備註
- “EVAL is a Lua 5.1 script.” redis.io